サーバーに5〜10分ごとに接続し、データベースに変更があるかどうかを確認するアプリを作成しました。
そのため、サービスを使用して、アプリをバックグラウンドで実行し、ユーザーがアプリを閉じてステータスバーにメッセージを表示できるようにします。その中でスレッドを使用して、アプリが5〜10分間スリープするようにします。電話をロックすると問題が始まります。アプリが停止するよりも(これは、電話をロックすると「スリープ」になるためです)、これが必要だとわかりました:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, 'My Tag');
wl.acquire();
これにより、画面を除いて電話がスリープ状態にならなくなります。しかし、そこで立ち往生しました。これは問題なく動作しますが、バッテリーをかなり消費します。1時間あたり10%:(そして、アプリがこれらのWebサービスを常に要求しなければならないという問題はなく、その電話を強制的に稼働させる機能があると私は信じています.
だから、私の質問は、私が使用できる他の解決策があるかどうかです.backgorundで実行される電話にいくつかのアプリがありますが、バッテリーをまったく消耗しません(avast、juice defenderなど..)。
どんなアイデアもとても役に立ちます!
よろしく!