2017-01-16 2 views
0

Ich schreibe Anwendung, die regelmäßig herunterladen müssen (etwa 15 Minuten) JSON-Daten vom Server im Hintergrund und benachrichtigen Benutzer mit Benachrichtigung.Wie sollte ich regelmäßige Aufgabe in Android

Ich habe nicht viel Erfahrung mit Android-Codierung und ich frage, wie ich das richtig und mit den besten Programmierpraktiken tun sollte?

Ich brauche nicht zu viel Präzision, AlarmManager mit ungenauen Wiederholungen sollte perfekt funktionieren. Ich weiß, wie BroadcastReceiver verwenden, um BOOT_COMPLETE zu empfangen und Dienst zu starten. Ich weiß jedoch nicht, wie ich AlarmManager so einstellen kann, dass bestimmte Aktionen im Service ausgeführt werden und ob ich das auf diese Weise tun sollte. Ich möchte keine android Mechanismen in einer Weise verwenden, die nicht zur Verfügung gestellt wurde.

+1

Klingt wie Sie auf dem richtigen Weg sind bereits versuchen, bei https://guides.codepath.com/android/Starting-Background-Services#using-with suchen -alarmmanager-für-periodisch-Aufgaben – hibob

+0

@hibob vielen Dank. Genau das brauche ich. – darkanzali

Antwort

0

Verwenden Sie AsyncTask zum Abrufen von Informationen vom Server. In OnReceive Methode der Empfängerklasse neues AsyncTask-Objekt erstellen und führen Sie es wie folgt:

private class GetContent extends AsyncTask<String,Void,String> // Assume class name 
extras = extras.getString("json"); 
GetContent().execute(extras); 

in Standardfunktion von AsyncTask doInBackground, retrive Daten und zurück JSON. Erstellen Sie in der anderen Standardfunktion onPostExecute ein Objekt NotificationCompat.Builder und benachrichtigen Sie.

0

die Klasse Timertask Verwendung:

private TimerTask timerTask; 
private final long PERIOD_TIME=1000 * 60 * 15; //15min 

@Override 
public void onCreate() { 

Timer timer = new Timer(); 

timerTask = new TimerTask() { 
    @Override 
    public void run() { 
    //Your request JSON 
    } 
    }; 

    timer.scheduleAtFixedRate(timerTask, 0, PERIOD_TIME); 
} 
Verwandte Themen