【发布时间】:2025-12-08 18:15:02
【问题描述】:
我正在尝试每隔 30 秒定期启动一项服务(即使应用程序已关闭)。但它立即一个接一个地运行。我通过以下方式首次启动该服务:
Intent i= new Intent(this, MyService.class);
this.startService(i);
我的服务是
public class MyService extends Service {
public static String READ_NEMAD_URL = "http://...";
@Override
public void onStart(Intent intent, int startId) {
ReadNemad task = new ReadNemad("GCAZ92");
task.execute();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
Calendar cal = Calendar.getInstance();
Intent intent1 = new Intent(this, MyService.class);
PendingIntent pintent = PendingIntent.getService(this, 0, intent1, 0);
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
// Start every 30 seconds
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
30 * 1000, pintent);
}
private class ReadNemad extends AsyncTask<String, Void, String> {
//Do Somethings
return response;
}
@Override
public void onPostExecute(String response) {
stopSelf();
}
}
}
为什么服务自己运行?我怎样才能让它每 30 秒运行一次?
【问题讨论】:
标签: android android-intent service alarmmanager