2016-07-23 5 views
0

Hallo, ich möchte einen Hintergrunddienst machen, um die Daten meiner App zu aktualisieren und es einmal am Tag zu wiederholen, auch möchte ich, dass der Dienst onboot startet. Ich habe den folgenden Code:Hintergrundwiederholungsaufgabe mit onboot

public class OnBoot extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // Create Intent 
     context.startService(new Intent(context, BackgroundServiceHandler.class)); 
    } 

} 

ich ein Einstellungsmenü haben, damit der Benutzer die Stunde der wiederkehrenden Alarm wählen. Wie kann ich die Zeit des Alarmmanagers zurücksetzen? Wo muss ich den Code des Alarmmanagers setzen? Muss ich den Service oder Intentservice nutzen? Wie überprüft man, ob der Dienst läuft?

Alarm Manager Code:

Intent intent = new Intent(MainActivity.this, AlarmService.class); 
    intent.putExtra("i", 3); 
    PendingIntent pi = PendingIntent.getService(MainActivity.this, 9, intent, 0); 

    // every day at 9 am 
    Calendar calendar = Calendar.getInstance(); 

    // if it's after or equal 9 am schedule for next day 
    if (Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 9) { 
     calendar.add(Calendar.DAY_OF_YEAR, 1); // add, not set! 
    } 
    calendar.set(Calendar.HOUR_OF_DAY, 9); 
    calendar.set(Calendar.MINUTE, 0); 
    calendar.set(Calendar.SECOND, 0); 

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 

    alarmManager.setInexactRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), 
      AlarmManager.INTERVAL_DAY, pi); 

Antwort

0
  • Wie kann ich die Zeit zurückzusetzen des Alarmmanager?

How to edit/reset Alarm Manager?

  • Wo ich den Code der Alarmmanager setzen müssen?

Zum Beispiel können Sie diesen Code in statischer Methode platzieren und es von Ort nennen, wo Benutzer eingestellten Zeit und von OnBootReceiver. Wie man die Klasse implementiert, die das Ereignis OnBoot empfangen wird, überprüfen Sie bitte, dass answer.

  • Do i-Dienst oder intentservice verwenden?

Service vs IntentService

  • Wie überprüfen, ob Service läuft?

Check if service is running on Android?