| |||||||
Das Thema "progressDialog wird angezeigt -> Thread aber nicht ausgeführt?" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 09.02.2011
Beiträge: 18
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
| Ich habe noch eine Frage, ich habe einen ProgressDialog in meine App eingebaut sobald man auf den aktualisieren Button klickt. Leider klappt das dann aber nicht so wie es soll. Er zeigt mir den Dialog an, aber im Hintergrund soll er während der Anzeige noch daten von einem Webserver laden, das macht er nicht. Es wird nur ein Sleep ausgeführt im Thread. Ist Thread das falsche? Brauche ich da AsyncTask? Hat jemand einen Link zu einer guten AsyncTask Anleitung mit Dialog? Oder habe ich einen anderen Fehler? Code: package de.ben.statistik;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class Statistik extends Activity {
private ProgressDialog dialog;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate( // (1)
R.layout.hauptmenue, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.opt_AnzeigeAktualisieren: {
dialog = ProgressDialog.show(this, "",
"Loading. Please wait...", true);
new Thread() {
public void run() {
try{
try {
Thread.sleep(5000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
TextView prozent = (TextView) findViewById(R.id.prozent1);
final String txtUrl = "http://sportwetten-blogger.de";
JSONObject Jarr=getRequest(txtUrl);
try {
prozent.setText(Jarr.getString("prozent"));
} catch (JSONException e) {
}
} catch (Exception e) {
Log.e("tag", e.getMessage());
}
// dismiss the progress dialog
dialog.dismiss();
}
}.start();
return true;
}
}
return super.onOptionsItemSelected(item);
}
public JSONObject getRequest(String txtUrl){
String url = txtUrl;
JSONObject Jarr=null;
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
try{
HttpResponse response = client.execute(request);
String text=HttpHelper.request(response);
try {
Jarr= new JSONObject(text);
} catch (Exception e) {
e.printStackTrace();
}
return Jarr;
}catch(Exception ex){
return Jarr;
}
}
} Geändert von baeckerman83 (05.06.2011 um 23:46 Uhr) |
| | |
| | #2 (permalink) |
| Android Guru Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
|
also mit thread gehts sicher auch, aber mit asynctask ist es einfacher google liefert dir da mit sicherheit genügend beispiele.
__________________ App Entwicklung Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD ) |
| | |
| | #3 (permalink) |
| Neuer Benutzer Registriert seit: 09.02.2011
Beiträge: 18
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Danke habe es mit asynctask hinbekommen. Hier meine Lösung, auch wenn sie sicher nicht top ist, evt hilft sie ja jemand. Code: package de.ben.statistik;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class Statistik extends Activity {
private ProgressDialog dialog;
public JSONObject Jarr;
public ProgressDialog progDialog;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
new TheTask().execute();
}
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate( // (1)
R.layout.hauptmenue, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.opt_AnzeigeAktualisieren: {
new TheTask().execute();
return true;
}
}
return super.onOptionsItemSelected(item);
}
public JSONObject getRequest(String txtUrl){
String url = txtUrl;
JSONObject Jarr=null;
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
try{
HttpResponse response = client.execute(request);
String text=HttpHelper.request(response);
try {
Jarr= new JSONObject(text);
} catch (Exception e) {
e.printStackTrace();
}
return Jarr;
}catch(Exception ex){
return Jarr;
}
}
private class TheTask extends AsyncTask<Void, Void, Void>{
@Override
protected void onPreExecute() {
progDialog = ProgressDialog.show(Statistik.this,"","Loading, please wait....", true);
}
@Override
protected Void doInBackground(Void... Params) {
//Thread.sleep(5000);
final String txtUrl = "http://sportwetten-blogger.de/";
Jarr=getRequest(txtUrl);
return null;
}
@Override
protected void onPostExecute(Void result) {
if(progDialog.isShowing())
{
progDialog.dismiss();
}
TextView prozent = (TextView) findViewById(R.id.prozent1);
try {
prozent.setText(Jarr.getString("prozent"));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| SMS Ton wird angezeigt, aber nicht abgespielt... | meisterlampe | HTC Desire Forum | 5 | 12.03.2011 09:42 |
| SMS wird nicht angezeigt aber Benachrichtigungston kommt | 4evermore | HTC Desire Forum | 6 | 23.02.2011 12:30 |
| Kontakte sind da, Anrufer-ID wird aber nicht angezeigt | wangerin4u | HTC Wildfire Forum | 7 | 10.11.2010 21:23 |
| 3G up-download wird angezeigt Internet geht aber nicht?! | meindesire.willmiran | HTC Desire Forum | 2 | 09.06.2010 17:14 |
| W-Lan wird angezeigt aber nicht verbunden | wDs19 | HTC Magic Forum | 1 | 25.03.2010 13:00 |