我在Google商店上有gps应用程序,其目标API版本为25。我做了一些功能更新,并将目标/编译版本更新为26,因为Google要求这些天。但是我的后台服务在启动后尝试启动时失败。调试时,Android Studio没有出现任何错误。当我将目标版本改回25时,我的应用在启动后可以正常启动。
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
PowerManager p = (PowerManager) getSystemService(this.POWER_SERVICE);
wakeLock=p.newWakeLockPowerManager.PARTIAL_WAKE_LOCK, "tag:DoNotSleep");
}
Android Studio在NullPointerException或下一行的标记上给出警告。但这并不会阻止我构建代码。看来我必须在以下行中进行一些更改。
wakeLock=p.newWakeLockPowerManager.PARTIAL_WAKE_LOCK, "tag:DoNotSleep");
答案 0 :(得分:0)
https://developer.android.com/about/versions/oreo/android-8.0-changes
作为Android 8.0(API级别26)引入的旨在延长电池寿命的更改之一,当您的应用进入缓存状态且没有活动组件时,系统会释放该应用持有的所有唤醒锁。
因此,如果您依靠唤醒锁来保持服务处于活动状态,则不会。