1

startService によって開始され、 BIND_AutoCreate にバインドされたサービスがあります。アンドロイドがメモリ不足のためにサービスを強制終了したときに、サービスを自動的に実行したいのですが、どのように埋め込むことができますか?

ありがとう'

4

2 に答える 2

0

ACTION_DEVICE_STORAGE_OKデバイスのメモリ不足状態を示すブロードキャスト レシーバーを登録する必要があります。メソッドで、onReceive()サービスが停止しているかどうかを確認し、開始します。

DEVICE_STORAGE_OKデバイスが低メモリ状態 (内部メモリ) から回復したときに、アクションがブロードキャストされます。これは、システムによるメモリ回復中にサービスが強制終了されたかどうかを確認し、強制終了された場合はサービスを開始するのに最適なイベントだと思います。

こちらのドキュメントをお読みください。

于 2012-05-19T09:32:55.473 に答える
0

BIND_AUTO_CREATEバインディングのためにサービスが作成された場合、アクティビティがバインドされていなければサービスは停止します。

ドキュメント(service lifecycle)によると、サービスを明示的に開始してから、 autocreate フラグを有効にしてバインドすることができます。

サービスを STICKY として明示的に開始した場合 (その * onStartCommand* メソッドで START_STICKY を返すと、システムにリソースが増えるたびに自動的に再起動されます。

于 2012-05-19T14:14:17.530 に答える