Periodische HTTP-Requests schicken - WIE?

S

sem_thesis

Fortgeschrittenes Mitglied
0
Ich schreibe eine Facebook-basierte App, welche nach Login User-Daten von Facebook sammelt.
Dabei stütze ich mich auf der Facebook SDK Framework, welche Login/Logout/HTTP-Requests schicken und empfangen managt (mithilfe der Klasse AsyncFacebookRunner.java und Facebook.java).

Ich muss nur 2 Instanzen der beiden Klassen erstellen und die gegebenen Funktionen benutzen.

Mein Code macht folgendes:
1) FB Login
2) Beim Klick auf Menüoption wird ein HTTP-Request geschickt und in der entsprechenden Klasse bearbeitet.


Hier ist das Beispiel um User-Event zu sammeln:
Code:
    private Facebook mFacebook;
    private AsyncFacebookRunner mAsyncRunner;

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int itemId = item.getItemId();
        switch (itemId) {
.......
        case MyClassName.GET_EVENTS:
            this.mAsyncRunner.request("me/events", new EventRequestListener());
            break;
       }
}


     private class EventRequestListener implements RequestListener {
 
        @Override
        public void onComplete(String response, Object state) {
            try {
                // process the response here: executed in background thread
                Log.d(TAG, "Event Response: " + response.toString());
                final JSONObject json = new JSONObject(response);
                JSONArray d = json.getJSONArray("data");
 
                Log.d(TAG, "Number of Events: " + d.length());
                
                for (int i = 0; i < d.length(); i++) {
                    JSONObject event = d.getJSONObject(i);
                    FbEvent newEvent = new FbEvent(event.getString("id"),
                            event.getString("name"),
                            event.getString("start_time"),
                            event.getString("end_time"),
                            event.getString("location"));
                    events.add(newEvent);
 
                }
 
            } catch (JSONException e) {
                Log.w(TAG, "JSON Error in response");
            }
        }
         

... Other RequestListener Methods...

}
Was der Code macht ist, er erstellt beim MenüOptionklick eine Instanz der EventRequestListener-Klasse, welche den HTTP-Response in eine Klasse hineinschreibt...


Langer Rede, kurzer Sinn.
Was ich will ist das diese Instanz nicht per Mausklick sondern periodisch (sagen wir jede 4h kreeiert wird und Daten sammelt).
this.mAsyncRunner.request("me/events", new EventRequestListener())
Ist das möglich? Wenn ja, wie?
 
Kann ich vielleicht den HTTP-Request zu einem Intent umwandeln?
Danach könnte ich einen periodischen Alarm mit AlarmManager.setrepeating() setzen, der immer wieder diesen Intent aufruft.

Geht das?
 

Ähnliche Themen

L
Antworten
15
Aufrufe
905
jogimuc
J
M
Antworten
3
Aufrufe
148
moin
M
C
  • CoderboyPB
Antworten
3
Aufrufe
925
swa00
swa00
Zurück
Oben Unten