2

バックグラウンド スレッドでかなり短いタスクを実行したいと考えています。ただし、このタスクは非常に機密性が高く、可能な限り信頼性が高くなければなりません。

私の最初のアイデアは、(これも短命の) フォアグラウンド サービスを使用することでした。サービスを開始し、別のスレッドでタスクを実行し、終了したら停止します。ロボスパイスが行っていることと同様に単純に聞こえますが、サービスのドキュメントにはスレッドの強制終了については何も記載されていません。サービス自体はスレッドではなく単なるオブジェクトであるため、特定のスレッドがサービスに属しており、強制終了されるべきではないことをシステムに「伝える」にはどうすればよいでしょうか?

  • Service オブジェクトで Thread オブジェクトへの参照を保持するだけで十分ですか?
  • HandlerThread を使用して、ルーパーへの参照を保持する必要がありますか? (IntentServiceのように)
  • Thread クラスも拡張してサービスにバインドする必要がありますか? :)

誰かが私に道順を教えてくれることを願っています。ありがとう。

4

1 に答える 1

3

スレッドはプロセス全体でのみ強制終了されました。Android は、どのスレッドも強制終了できません。Android は、プロセス全体とそのすべてのスレッドを強制終了できます。したがって、Android にアプリケーションを強制終了させて​​はなりません。すべてのスレッドが有効になります。

フォアグラウンド アクティビティやサービスがある場合、またはアプリを維持するのに十分なリソースがある場合、Android はアプリを強制終了しません。

于 2013-02-05T13:28:49.863 に答える