1

Android用のアプリをプログラムしましたが、サービスで問題が発生しました。次の画像は、状況をよりよく理解するのに役立ちます。私はそれをできるだけシンプルにしようとしました:

問題の視覚化

サービスを開始するアクティビティがあります。このサービスは、Webページへのリクエストを行うスレッドを開始します。このサービスが開始されるとすぐに、この手順を続行する必要があります。唯一の例外は、低メモリキラーまたはアクティビティからの人間の要求です。

今の私の問題:Androidデバイスがパワーセーフモードをアクティブにした瞬間(画面が黒くなる)、スレッドは一時停止/停止されます。デバイスを再アクティブ化した後、スレッドが再開します。

私がこれまでに得たもの:

  • エミュレータを使用すると、すべて正常に動作します(パワーセーフモードでもリクエストを送信します)
  • Android-PC /ラップトップに接続されたデバイス(デバッグモードありとなし)、すべてが想定どおりに機能します
  • Androidデバイスが何にも接続されていない->パワーセーフモードになるとすぐに、スレッドは一時停止します
  • デバイスを再アクティブ化すると、スレッドは続行します(たとえば、メモリ不足のキラーが破壊されない)

あなたが私の問題を理解し、私を助けてくれることを願っています。ある特別な状況でそれが機能しない理由がわかりません。

前もって感謝します :)

4

1 に答える 1

1

PowerManagementクラスをご覧ください。ただし、次の理由で慎重に使用してください。

デバイスのバッテリー寿命は、このAPIの使用によって大きく影響されます。本当に必要な場合を除いて、PowerManager.WakeLocksを取得しないでください。可能な限り最小限のレベルを使用し、できるだけ早く解放してください。

于 2012-12-19T13:38:50.910 に答える