0

解決できない非常に難しい問題があります。電力を節約するためにリモートで機内モードにできるアプリがあります。省電力メッセージを取得し、他のすべてのスレッドのコールバックを削除し、電話を機内モードにし、指定された分数待ってから電話を復帰させるスレッドを実行しています。

電話が私のラップトップに接続されている場合(USBデバッグが有効になっているなど)、この機能は問題ありません。スマートフォンが機内モードになり、画面がロックされ、特定の分数が経過すると、アプリが「ウェイクアップ」して通常どおり続行します。

電話が車の充電器に接続されると、電話は機内モードになりますが、スレッドが電話をウェイクアップすることはありません。この問題は、画面もタイムアウトに設定されている場合にのみ発生します...画面を「タイムアウトしない」に設定し、電話を車の充電器に接続すると、アプリは正常に起動します。

電源と画面のタイムアウトの組み合わせによって、システムレベルで省電力スレッドが停止するようです。私はこの投稿が私のアプリケーションに非常に固有であることを知っていますが、誰かが以前にこれと同様の問題に遭遇したことがありますか?

4

1 に答える 1

1

n分間待機する場合は、スレッドではなくアラームを使用する必要があります。アプリケーションがフォアグラウンドにない間、スレッドがアクティブのままであると想定することはできません。http://developer.android.com/reference/android/app/AlarmManager.htmlを確認してください。

于 2010-09-11T00:42:29.740 に答える