デベロッパーコンソールでAndroidアプリを起動すると、アプリが「目を覚ましました」という警告が表示されます。 documentationでは、あなたのアプリがバックグラウンドで実行されている間、それは(あなたのアプリケーションのどの部分がユーザーに表示されていない)長時間保持されている場合、部分ウェイクロックがスタックになりAndroid vitals - 目覚ましロックとフォアグラウンドサービスを停止しました
として説明しています。
アプリがバックグラウンドで再生されている(オーディオ再生中)のは本当ですが、私はフォアグラウンドサービスを使用しており、ロック通知が表示されています。その後documentationで
あなたのアプリの一部がフォアグラウンドに残っていることを確認します
を読むことができます。たとえば、サービスを実行する必要がある場合は、代わりにフォアグラウンドサービスを開始します。これにより、アプリがまだ実行中であることがユーザーに視覚的に示されます。
しかし、それは真実ではないようです。 Androidバイタルはそのアプリを無視してフォアグラウンドサービスを提供していますか?誰も同じような経験をしていますか?
EDIT:あなたがロックを解除すると、システムは、数えることができるので、ここでコードが私のAudioService
PowerManager.WakeLock mWakeLock = null;
boolean mHasWakeLock;
void acquireLocks(){
if (!mHasWakeLock) {
final PowerManager pm = (PowerManager)
context.getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,TAG);
mWakeLock.setReferenceCounted(false);
mWakeLock.acquire();
mHasWakeLock = true;
}
}
void releaseLocks() {
if (mWakeLock != null) {
mWakeLock.release();
mWakeLock = null;
}
mHasWakeLock = false;
}
void play(){
startForeground(NOTIFICATION_ID, notification);
acquireLocks();
}
void stop(){
releaseLocks();
stopForeground(true);
}
ウォークロックとフォアグラウンドサービスに関連するコードを追加してください。 –
同じ問題が発生しました。アプリは部分的な起床ロックを必要とし、ユーザーはそれも必要とします。しかし、Googleはそう考えていません...あなたが解決策を見つけたら、plsはそれを共有します(私はsetReferenceCountedを使用しません)ありがとう! – Trancer