屏幕关闭时,AsyncTask中的代码无法顺利运行

时间:2013-03-12 06:48:48

标签: android android-asynctask screen

在我的AsyncTask中,我以某种模式振动手机并重复此操作,直到用户将其关闭。只要屏幕打开,这样就可以正常工作。如果屏幕关闭,代码仍会运行,但两者之间会有间断。似乎Android尝试在关闭屏幕的情况下消耗电池,并且仅在线程内运行代码(例如我的AsyncTask)。真的吗?或者这是其他一些行为吗?有没有办法让我的代码即使屏幕关闭也能顺利运行?打开屏幕可能会耗尽电池电量。即使屏幕关闭,振动也会用于通知用户。

2 个答案:

答案 0 :(得分:2)

您可以使用WakeLock。通过使用PARTIAL_WAKE_LOCK,您可以确保即使屏幕关闭,cpu也在运行,您的代码也能正常执行。

但是,我想补充一点,我从来没有遇到AsyncTask这样的问题,但如果遇到这样的问题,唤醒锁可能就是解决方案。

答案 1 :(得分:1)

AsyncTask不是为处理长时间运行的任务而设计的。如果您希望手机长时间以特定模式振动,我建议您使用AlarmManager设置重复闹铃。