我有一个问题,试图安排我的服务运行每隔一段时间。我已经让我的服务在启动时启动,但是由于某种原因,当计划启动时,它启动了很多次服务。
public class PPPService extends Service {
public void onStart(Intent intent, int startId) {
//TODO do something useful
Log.v("TEST", "Service started");
// Schedule the alarm!
PendingIntent mAlarmSender = PendingIntent.getService(this, 0, intent, 0);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, AlarmManager.INTERVAL_FIFTEEN_MINUTES, mAlarmSender);
this.stopSelf();
}
}
Resolved:这是通过创建一个Scheduler而不是让我的服务调度本身来解决的。
你在PendingIntent中发送的是你的服务的上下文,它将很快与启动它的intent一起被杀死。我想这是很难预测的。尝试像这样获取挂起的意图:
mAlarmSender = PendingIntent.getService(getApplicationContext(), 0, new Intent(getApplicationContext(), PPPService.class), 0);