我試圖每隔30秒開始一次服務(即使應用程序已關閉)。但它立即運行一個又一個。我開始首次由服務:android - 如何定期啓動服務?
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秒運行一次?
那麼爲什麼所有的教程都學習了AlarmManager如果運行時經常運行服務呢? AlarmManager是一個錯誤的方法? – user3021005
@ user3021005你不明白我說了什麼,我沒有說alarmmanager是錯的我說,每30秒運行一次服務不會犯錯和錯誤。 – Sajmon