use*_*631 4 android android-wake-lock android-powermanager sleep-mode
Envrionment:Eclipse
语言:Java(Android)
我有一个问题,直到我在设备上测试我的应用程序之前我才意识到这一点.我一直以为即使手机正在睡觉,服务也会在后台持续运行.我发现事实并非如此,所以,我的问题是,一旦你唤醒你的设备,服务会再次启动吗?如果没有,我将如何使服务再次启动.
我能每隔5分钟左右唤醒一次电话,只是为了运行我的服务,这将持续30秒到1分钟.然后让手机重新入睡?
提前致谢.
编辑:我是Android编程的新手,如果有人告诉我如何使用WakefulIntentService,我将非常感激.我有一项服务,每隔一段时间都在搜索用户的GPS位置,当手机进入睡眠状态时,我希望我的服务仍然能够找到他们的位置.我将如何使用WakefulIntentService?我能在这种情况下使用它吗?
谢谢.
iTe*_*ech 10
您需要握住处理器lock以保持服务正常运行
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "TAG");
wl.acquire();
// When you are done
wl.release();
Run Code Online (Sandbox Code Playgroud)
如果您的服务正在使用Wi-Fi,您还需要另一个锁
WifiManager wm = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifiLock= wm.createWifiLock(WifiManager.WIFI_MODE_FULL, "TAG");
wifiLock.acquire();
// When you are done
wifiLock.release();
Run Code Online (Sandbox Code Playgroud)
请记住添加android.permission.WAKE_LOCK清单