我是
android的新手.我正在开发一个应用程序,其中一个特定的代码片段在后台每5秒执行一次.要实现这一点,我正在使用带有计时器任务的计时器服务.有时它的工作正常,但经过一些无限期我的服务正在运行,但计时器任务在android中自动停止.这是我的代码请帮忙.提前致谢.
public void onStart(Intent intent,int startid) { //this is the code for my onStart in service class int delay = 1000; // delay for 1 sec. final int period = 5000; // repeat 5 sec. timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { executeCode(); },delay,period); };
解决方法
在我看来,你应该使用带有IntentService的AlarmManager来安排重复后台任务而不是Timer任务. Timer不可靠,并且在Android Framework中并不总能正常工作.此外,如果手机处于睡眠状态,计时器将不会执行.您可以通过AlarmManager唤醒手机以执行代码.
看到:
https://developer.android.com/reference/android/app/AlarmManager.html
http://mobile.tutsplus.com/tutorials/android/android-fundamentals-scheduling-recurring-tasks/
http://android-er.blogspot.in/2010/10/simple-example-of-alarm-service-using.html
如果手机重启,则需要再次触发报警管理器.有关如何执行此操作的确切说明,请参阅本教程:
http://www.androidenea.com/2009/09/starting-android-service-after-boot.html