2013-12-21 186 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(在问你问题后出现)介绍了如何制作一个程序,一项服务,并让它们相互交流。