2013-12-21 225 views
8

我正在嘗試使用kivy構建android應用程序。如何隱藏我的應用程序,但仍然像deamon一樣在後臺運行?在後臺運行應用程序

from kivy.config import Config 
Config.set('graphics', 'fullscreen', 'fake') 

from kivy.app import App 
from kivy.uix.button import Button 

class MyApp(App): 
    def build(self): 
     button = Button(text="Exit", size_hint=(None, None)) 
     button.bind(on_press=exit) 
     return button 

if __name__ == '__main__': 
    MyApp().run() 

回答

7

如果您想在後臺實際進行計算,則需要使用android服務。 Python-for-android可以這樣做,相關文檔是here

如果你只是想讓你的應用程序沒有完全關閉(這樣它不會完全重新啓動,每次都是啓動畫面等),你只需要添加一個on_pause方法到你的應用程序類,它應該返回True。你也可以用這種方法做任何預先暫停的東西。然而,應用程序並沒有真正運行,它只是保持內存狀態。

在後一種情況下,請注意,Android可以並且有時會在暫停狀態下殺死應用程序。這是應用程序處理方式的一個正常部分,您無法避免它,所以您應該在您的方法中保存任何重要狀態。

+0

只需使用start_service,我的應用程序將在後臺運行,而不管它是否關閉? – sam

+1

不,該服務是一個獨立的進程,只運行您專門添加的服務。 – inclement

+0

可否請給我任何服務的例子。這將有助於我更多地瞭解,因爲我不明白我的應用程序如何才能提供服務。我將如何爲我的應用程序啓動一個單獨的過程? – sam

0

由於Inclement已經提到,你需要爲此啓動一個android服務。 This kivy planet post(在問你問題後出現)介紹瞭如何製作一個程序,一項服務,並讓它們相互交流。