定时器任务在android中无限期后停止运行
作者:互联网
我是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
标签:android,timer,service,timertask,background-service 来源: https://codeday.me/bug/20190620/1247161.html