Forum: PC-Programmierung [Android] ständige Aktualisierung und Firebase ( gcm )


von Markus J. (dmant)


Lesenswert?

Hallo,

ich will mir für meinen Server eine kleine Android App schreiben. Eine 
HTTP bzw. HTTPS Verbindung bekomme ich bereits, den Request ebenfalls. 
Aber wie kann ich das ganze nun dauerhaft machen wie in einer Schleife?

Hier mal mein Testcode

MainActivity.java
1
package ovh.dmant.XXX.XXX;
2
import android.support.v7.app.AppCompatActivity;
3
import android.os.Bundle;
4
import android.widget.TextView;
5
6
7
public class MainActivity extends AppCompatActivity {
8
9
    @Override
10
    protected void onCreate(Bundle savedInstanceState) {
11
        super.onCreate(savedInstanceState);
12
        setContentView(R.layout.activity_main);
13
14
        String url = "https://XXX/android.php";
15
        TextView textView = (TextView) findViewById(R.id.textView);
16
        new GetHttpTask(textView).execute(url);
17
    }
18
19
}

GetHttpTask.java
1
package ovh.dmant.XXX.XXX;
2
3
import android.os.AsyncTask;
4
import android.widget.TextView;
5
6
import java.io.BufferedInputStream;
7
import java.io.BufferedReader;
8
import java.io.IOException;
9
import java.io.InputStream;
10
import java.io.InputStreamReader;
11
import java.net.URL;
12
13
import javax.net.ssl.HttpsURLConnection;
14
15
public class GetHttpTask extends AsyncTask<String, Void, String> {
16
    private TextView textView;
17
18
    public GetHttpTask(TextView textView) {
19
        this.textView = textView;
20
    }
21
22
    @Override
23
    protected String doInBackground(String... strings) {
24
        String httprequest = "UNDEFINED";
25
        try {
26
            URL url = new URL(strings[0]);
27
            HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection();
28
29
            InputStream stream = new BufferedInputStream(urlConnection.getInputStream());
30
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(stream));
31
            StringBuilder builder = new StringBuilder();
32
33
            String inputString;
34
            while ((inputString = bufferedReader.readLine()) != null) {
35
                builder.append(inputString);
36
            }
37
38
            httprequest = builder.toString();
39
40
            urlConnection.disconnect();
41
        } catch (IOException e) {
42
            e.printStackTrace();
43
        }
44
        return httprequest;
45
    }
46
47
    @Override
48
    protected void onPostExecute(String temp) {
49
        textView.setText(temp);
50
    }
51
}

Sobald ich die App starte werden die Daten einmalig abgerufen. Also das 
klappt, nur wie mache ich das nun ständig? Also z.b. alle 10 Sek soll 
der die Http abfrage machen?

Und wie kriege ich das umgebaut das ich den HttpRequest in einen String 
bekomme, also z.b. so
1
httprequest = gibmirdenrequest(URL);
und dann steht in httprequest halt eben der request der jeweiligen url 
sodass ich das dann weiter verarbeiten kann bevor ich es auf den 
textview schicke.

Dann verstehe ich das GCM bzw. jetzt das Firebase nicht so richtig. Ich 
habe vor 3 oder 4 Jahren das letzte mal mit GCM gearbeitet. Aber das 
Firebase, da blicke ich nun garnicht mehr durch. Hat da jemand von euch 
vielleicht erfahrungen mit und  oder ein nettes Tutorial  
Informationen?

Danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.