van*_*dzi 9 android google-play-console
在开发者控制台 - Android vitals中,我看到警告该应用程序有"Stuck partial wake locks".在文档中,它被描述为
如果应用程序在后台运行时,部分唤醒锁定会被卡住(用户看不到应用程序的任何部分).
确实,应用程序在后台运行(播放音频),但我使用前台服务和整个时间应用程序保持锁定通知是可见的.
稍后您可以阅读文档
确保您应用的某些部分仍然在前台.例如,如果您需要运行服务,请改为启动前台服务.这可以直观地向用户显示您的应用仍在运行.
但它似乎不是真的.Android vitals是否忽略该app具有前台服务?有没有人有类似的经历?
编辑:这是来自我的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);
}
Run Code Online (Sandbox Code Playgroud)
我认为,问题在于
mWakeLock.setReferenceCounted(false);
Run Code Online (Sandbox Code Playgroud)
应该是true,这样当您释放锁时系统可以计数。就您而言,您很可能会释放它,但系统不会“看到”它。这可能会混淆生命体征。
尝试将该标志设置为 true。希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
1064 次 |
| 最近记录: |