2013-12-21 18 views
8

kivyを使用してAndroidアプリを構築しようとしています。私はどのように私のアプリケーションを隠すことができますが、デーモンのようにバックグラウンドで実行し続けますか?アプリケーションをバックグラウンドで実行する

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メソッドをAppクラスに追加するだけで済みます。返信True。また、この方法でプレポーズを行うこともできます。しかし、アプリは実際に実行していない、それだけでメモリ状態を保持します。

後者の場合、アンドロイドは一時停止状態のアプリを終了させることがあります。これはアプリケーションの処理方法の通常の部分であり、回避することはできないため、on_pauseメソッドに重要な状態を保存する必要があります。

+0

ちょうどstart_serviceを使用することで、私のアプリケーションは閉じられていてもバックグラウンドで実行されますか? – sam

+1

いいえ。サービスは、あなたが特別に追加したものだけを実行する別個のプロセスです。 – inclement

+0

あなたは私にサービスの例を教えてください。それは私がサービスにどのように私のアプリをすることができないか分からなかったので、私がもっと理解するのを助けるでしょう。私のアプリケーションのための別のプロセスはどうやって始めるのですか? – sam

0

すでに述べたように、あなたはこれのためにアンドロイドサービスを開始する必要があります。 This kivy planet post(あなたが質問をした後に登場)は、プログラムやサービスを手に入れ、お互いにやりとりさせる方法を説明しています。

関連する問題