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