2

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

4

2 回答 2

2

您可以使用WakeLock。通过使用 aPARTIAL_WAKE_LOCK您可以确保即使您的屏幕关闭,cpu 仍在运行并且您的代码将正确执行。

但是,我想补充一点,我从未遇到过此类问题AsyncTask,但如果您遇到此类问题,唤醒锁可能是解决方案。

于 2013-03-12T07:01:53.543 回答
1

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

于 2013-03-12T07:06:46.213 回答