即使我使用的平板电脑进入低功耗(屏幕关闭,键盘关闭)模式,我仍在尝试在我的App中使用“活动”来更新计数器。
我首先尝试通过发出此行( android:keepScreenOn =“ true”> )在相应的活动Layout .xml中保持屏幕打开。在选择我的应用程序时,此方法工作正常,但如果有人切换到应用程序外部,则他们将受到屏幕超时设置(最多10分钟)的支配。然后我假设CPU停止运行,因为我注意到回到我的应用程序时,OnCreate方法再次触发。然后它将恢复我的计时器。
我想知道是否有人可以向我解释实现PowerManager的方式可能做错了什么。我的android版本是targetSdkVersion26。这是一个代码段。并且在清单中
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true">
// Initiate Wake-Lock
private PowerManager.WakeLock mWakeLock = null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
// Initiate Wake-Lock, PARTIAL_WAKE_LOCK: CPU on, Screen Off, Keyboard off
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
mWakeLock.acquire(3600000);
super.onCreate(savedInstanceState);
// More code here of course
//
//
}
然后,当Activity销毁时,我释放唤醒锁。
@Override
protected void onDestroy()
{
if (mWakeLock.isHeld())
mWakeLock.release();
// call the superclass method first
super.onDestroy();
}
最后,我只希望计时器随着屏幕和键盘的关闭而不断增加。任何想法表示赞赏...