私の小さなアンドロイドの知識から、私はアンドロイドOSが極端なメモリ条件下で私のサービスを殺す可能性があることを理解します。アンドロイドが再起動すると、サービスは再び呼び出されますか?
START_STICKY
を返すサービスを作成しました。このサービスはバックグラウンドで実行されます。
アンドロイドがサービスを停止しようとしている場合は、onDestroy
に電話しますか?
それが再起動すると、onCreate
が呼び出されますか?
私の小さなアンドロイドの知識から、私はアンドロイドOSが極端なメモリ条件下で私のサービスを殺す可能性があることを理解します。アンドロイドが再起動すると、サービスは再び呼び出されますか?
START_STICKY
を返すサービスを作成しました。このサービスはバックグラウンドで実行されます。
アンドロイドがサービスを停止しようとしている場合は、onDestroy
に電話しますか?
それが再起動すると、onCreate
が呼び出されますか?
ここをクリックして、開発者ガイドを参照してください。 http://developer.android.com/reference/android/app/Service.html#ProcessLifecycle
onCreate()
は、プロセスが開始されたときにのみ呼び出されます。サービスが初めて実行されたとき、または再起動時に強制終了されたときにのみ呼び出されます。
onStartCommand()
は、クライアントがstartService()
を呼び出すたびに呼び出されます。
サービスが破損または完全に停止した場合、AndroidはそのサービスでonDestroy()
と呼ぶことになっています。そのようなことは起こらない可能性があります(Androidシステムではなくプロセスが殺されるなど)。バインドされたサービスの場合、アクティブなクライアントバインダがそれ以上存在しない場合です。
編集:onCreate()
サービス開始; onStartCommand()
誰かがサービスを使用しています。 onDestroy()
サービスは強制終了/停止されます。
誰かがContext.startService()を呼び出した場合、システムは サービス(それを作成し、必要に応じてそののonCreate()メソッドを呼び出す) を取得し、その後でそのonStartCommand(テント、int型、int)メソッドを呼び出しますクライアント
によって供給 引数...
は、サービスの両方が開始され、それに結合された接続を持つことができます。 このような場合、システムは、 が起動されているか、または1つまたは複数の接続が Context.BIND_AUTO_CREATEフラグである限り、サービスの実行を継続します。これらのいずれの状況もなくなると、サービスのonDestroy()メソッドが呼び出され、サービスは が有効に終了します。すべてのクリーンアップ(スレッドの停止、 レシーバの登録解除)は、onDestroy()からの復帰時に完了する必要があります。
http://developer.android.com/reference/android/app/Service.html
EDIT:クイック答え。両方の質問にはいる
http://developer.android.com/reference/android/app/Service.html - これはライフサイクルについて語っています – user1378730
Nice question Ahmed ...私は同じ混乱に苦しんでいます。あなたはonCreate() Androidがサービスを再起動したときに呼び出されますか? –
@PankajKumarはい再起動すると呼び出されます – Ahmed