2012-01-11 4 views
2

私のサービスでは、特定のタスクを実行するために15秒ごとにスリープ解除アラームを設定するためにアラームマネージャを使用しています。タスクが時間的に重要ではないので、私は電話を起こしたくないので、私はELAPSED_REALTIMEフラグを使ってアラームを設定しています。ここでは、コードです:アラームマネージャの動作とウェークロックについての質問

alarm.setRepeating(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime(), 15 * 1000, intentRecurringChecks); 

私は私のログに気づいするタスクは15秒ごとに実行なっていることです。これは、画面が30分オフになっていても、電話が起きていることを意味しますか?私のアプリケーションが電話を覚ますのではないことを確かめる方法はありますか?

このトピックについては検索しましたが、適切な回答が見つかりません。

ありがとうございました。

答えて

0

まず、このようなタイムアウトにはAlarmManagerを使用しないでください。これは明示的にdocumentationに記載されています(太字部分を参照)。あなたのケースではHandlerベースのタイマを使用する方が良いです。ここに例があります:Repeat a task with a time delay?

第2に、デバイスがUSB経由で接続されている場合、デバイスがディープスリープモードに移行しない場合。あなたのデバイスを切断する必要があります1,2分待ってください。アタッチしてログを分析します。

+0

私はテスト目的のためにこのような短いタイムアウトを使用しています。それにもかかわらず、この行動の理由は何か。さらに、私はUSB経由ではなく、アンドロイドでファイルにログインしています。 – black

+1

@Sebouh:「私はテスト目的でこのような短いタイムアウトを使用しています」 - しないでください。 5分のようなものを使って、*次に何が起こるかを見てください。 – CommonsWare

+0

私は5分の遅れでチェックしました。時々5分で実行され、別の時間は5分+ 10秒です。これが受け入れられると思いますか? – black

関連する問題