5

永続的に実行する必要があるバックグラウンドサービスがあります。サービスは私のアクティビティと対話する必要があります。

  1. サービスがまだ実行されている場合、アクティビティの再開を確認す​​るにはどうすればよいですか?サービスクラスの静的変数よりも良い可能性はありますか?

  2. 別のプロセスでリモートサービスを使用して(サービスの寿命を延ばすために)、アクティビティプロセスが強制終了されてもサービスが存続できるようにすることは、利点がありますか?

4

3 に答える 3

7

永続的に実行する必要があるバックグラウンドサービスがあります。

これは不可能です。ユーザーまたはAndroidは、ある時点でサービスを停止します。アーキテクチャを再検討してください。

サービスがまだ実行されている場合、アクティビティの再開を確認す​​るにはどうすればよいですか?

一般的に、あなたはしません。

サービスクラスの静的変数よりも良い可能性はありますか?

ユーザーまたはAndroidがサービスを停止した場合、これは機能しません。

別のプロセスでリモートサービスを使用して(サービスの寿命を延ばすために)、アクティビティプロセスが強制終了されてもサービスが存続できるようにすることは、利点がありますか?

リモートサービスは、アクティビティが破棄された後にサービスが実行されるかどうかとは関係ありません。電話をかけるstartService()と、サービスはアクティビティに関係なく、次の状態になるまで実行されます。

  • stopService()アクティビティから電話します
  • サービスコールstopSelf()
  • Androidはサービスを終了します
  • ユーザーは設定アプリケーションを介してサービスを終了します
  • ユーザーは「タスクキラー」を介してサービスを終了します(少なくともAndroid 2.1以前)
于 2010-07-19T14:28:35.003 に答える
3

サービスが実行されているかどうかを知りたいのはなぜですか?それから何かが必要な場合は、を投げるだけで、Intent実行されていない場合は、意図によって開始されます。

2番目の質問に関連して:

アクティビティが終了しても、サービスは「停止」しません。

于 2010-07-19T14:42:20.093 に答える
3

でサービスを開始しstartforeground()ます。これにより、サービスの期間が長くなります。

于 2010-08-24T06:06:16.803 に答える