Wakelock没有在Android上工作

时间:2017-05-02 01:05:15

标签: android wakelock

我正在做一个类似于Runkeeper的Android应用。当我启动应用程序时,我启动了一个时钟线程,我也有gps的onLocationChanged更新。屏幕打开时一切正常,但当屏幕关闭时,时钟线程停止。

我尝试过PARTIAL_WAKE_LOCK但没有任何反应。 以下是清单中的代码。

<uses-permission android:name="android.permission.WAKE_LOCK"/>

这是代码

PowerManager.WakeLock wl;

和onCreate()

PowerManager pm=(PowerManager)this.getSystemService(Context.POWER_SERVICE);
    wl=pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"my wakelock");
    wl.acquire();

也尝试了

PowerManager pm=(PowerManager)Context.getSystemService(Context.POWER_SERVICE);
    wl=pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"my wakelock");
    wl.acquire();

当我有WAKE_LOCK时,我不知道为什么时钟线程会停止。当我按下butttonlistener中的按钮时,如果可以成为explenation的一部分,则会启动clockthread吗?任何人都有任何建议 感谢

1 个答案:

答案 0 :(得分:0)

我认为你误解了Wakelock的作用。在程序保存时,唤醒锁可以使设备保持活动状态(认为CPU正在运行)。以下是一些它没有做的事情:

  • 控制应用程序流程中任何线程的生命周期
  • 控制应用程序的生命周期 !!

事实上,无论你做什么,Android绝对可以保证最终停止你的应用程序。当发生这种情况时,您将与PowerManager断开连接,并且您的唤醒锁会自动释放。

您可能需要AlarmManager