我是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唤醒手机以执行代码.
看到:
如果手机重启,则需要再次触发报警管理器.有关如何执行此操作的确切说明,请参阅本教程:
标签:android,timer,service,timertask,background-service
来源: https://codeday.me/bug/20190620/1247161.html