在我的Android应用程序中,我正在运行一个在前台启动的远程服务
startForeground(1, notification)
这样它就不会被杀死。在此服务中,允许任务每15分钟运行一次并重复执行。
handler.post(scheduledTask);
class ScheduledTask implements Runnable{
@Override
public void run() {
// Do the task
// Repeat the task after the interval
handler.postDelayed(this,INTERVAL);
}
}
我保留了这个应用程序一天。但是在午夜之后,它停止了大约5-6个小时的工作,然后在我恢复应用程序时提前完成,它继续。
有人能告诉我可能导致这个问题的原因吗?我在Galaxy Note中对此进行了测试。
答案 0 :(得分:1)
比postDelayed更好地使用AlarmManager。我现在无法发布代码,但我有相同的需求,并且证明AlarmManager比postDelayed好得多。
您需要某种警报接收器(例如BroadcastReceiver),每次发生警报事件(意图)时都会启动您的服务。