在我的AsyncTask中,我以某种模式振动手机并重复此操作,直到用户将其关闭。只要屏幕打开,这样就可以正常工作。如果屏幕关闭,代码仍会运行,但两者之间会有间断。似乎Android尝试在关闭屏幕的情况下消耗电池,并且仅在线程内运行代码(例如我的AsyncTask)。真的吗?或者这是其他一些行为吗?有没有办法让我的代码即使屏幕关闭也能顺利运行?打开屏幕可能会耗尽电池电量。即使屏幕关闭,振动也会用于通知用户。
答案 0 :(得分:2)
您可以使用WakeLock。通过使用PARTIAL_WAKE_LOCK
,您可以确保即使屏幕关闭,cpu也在运行,您的代码也能正常执行。
但是,我想补充一点,我从来没有遇到AsyncTask
这样的问题,但如果遇到这样的问题,唤醒锁可能就是解决方案。
答案 1 :(得分:1)
AsyncTask
不是为处理长时间运行的任务而设计的。如果您希望手机长时间以特定模式振动,我建议您使用AlarmManager设置重复闹铃。