2011-08-02 7 views
3

私はwakelockを使用する必要があります(私は明らかな理由ではありませんが、私はそれをするために支払われているので、私は選択肢がありません)Android:ウェイクロック:アプリケーションでロックが解除されていますか?

私の質問はとても簡単です:アプリonPauseまたはonStopは、自動的に解放されたアプリの起床ロックですか?

私は、ユーザーが自分のアプリを閉じるのを避けたいと思っています。そして、覚醒ロックは、何らかの奇妙な理由のためにオンになっています。

私は、現在のシステムで、アプリケーションが(別のスレッドからのものであるため)メッセージハンドラを使用してリリースウェイクロックを呼び出しているところに問題があります。これは「遅すぎます」とアプリがクラッシュするウェイクロックへの参照がなくなりました。

私は非常に明確ではないかもしれませんが、ここでの主な質問です:私は、アプリのライフサイクル外の電話に影響を与える私のアプリのウェイクロックを心配する

持っています。

歓声

ジェイソン

答えて

3

私の質問は非常に簡単です:私はアプリonPauseやonStopを離れるときに、自動的に解放アプリのウェイクロックですか?

いいえ。したがって、WakeLockではなく、アクティビティにandroid:keepScreenOnを使用する必要があります。

私はアプリのライフサイクルの外に電話に影響する私のアプリの起床ロックについて心配する必要がありますか?

絶対に。あなたがそれを解放するまでWakeLock、電話は寝ません。

+0

本当に必要なのは、毎回onPauseメソッドでウェイクロックを解除することです。 –

+1

@ Jason Rogers:もう一度、android:keepScreenOn'を使う方がいいでしょう。 – CommonsWare

-3

アプリケーションがフォーカスを失うと、ウェイクロックはキャンセルされ、アプリケーションがフォーカスしているときにのみ、ウェイクロックが有効になります。

+0

これはAFAIKが間違っています。これを示すサンプルアプリケーションがある場合は、リンクを投稿してください! – CommonsWare

0

ウェイクロックアプリケーションがフォアグラウンドになっていなくても、デバイスには明らかに影響します。実際にウェイクロックので

を取得する全体のポイントだ

は、必ずあなただけが、他の選択肢を持っていないときにウェイクロックを使用して、あなたのアプリがバックグラウンドで動作しているときに、ウェイクロックを必要としない場合は、作る作りますonPause()メソッドでウェイクロックを解除してください!

これは、デバイスのパフォーマンスとバッテリに大きな影響を与えます。

関連する問題