我有一个向我的服务器发送位置更新的功能,我需要它在设定的时间间隔内一直运行。我知道所有进程都可以被系统杀死,但我需要一种方法让它在被杀时自行重启。我知道重复事件可以通过Timer或AlarmManager完成,但在我的情况下更好,我如何创建一个服务,如果系统杀死它将重新启动它?我是初学者,所以请使用详细的代码/解释。
这是我现在用来重复我的功能的代码,但是当我关闭应用程序并且如果它没有被杀死它会被杀死,使该功能加倍,所以它发送两个/三个/四个等每5分钟更新一次:
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
//do a barrel roll
}
}, 0, 300000);//repeat every 5 minutes
答案 0 :(得分:1)
您可以通过向AlarmManager注册的警报向自己发送PendingIntent以启动服务。请注意,如果警报未唤醒,警报可以唤醒您的进程(请参阅文档以获取详细信息)
http://developer.android.com/reference/android/app/AlarmManager.html http://developer.android.com/reference/android/app/PendingIntent.html