| |||||||
Das Thema "Background Thread" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 15.08.2010
Beiträge: 66
Abgegebene Danke: 9
Erhielt 0 Danke für 0 Beiträge
| ich lade mir in einem Background Thread Daten von einem Server. Gleichzeitig wird die das Layout aufgebaut. Problem: Ich benötige die Daten welche runtergeladen wurden, bereits zu dem Zeitpunkt, an dem die Oberfläche aufgebaut wird. Gibt es da eine Lösung, wie man Buttons erst nach dem beenden des Background Threads starten kann? Code: new Thread() {
public void run() {
try {
sleep(5000);
//load data from server
handler.sendEmptyMessage(0);
progDailog.dismiss();
}
}.start(); |
| | |
| | #2 (permalink) |
| Android Guru Modell: T-Mobile G1, Nexus One, Samsung Galaxy Tab 10.1, Samsung Galaxy Nexus Registriert seit: 04.05.2009
Beiträge: 1.599
Abgegebene Danke: 128
Erhielt 210 Danke für 193 Beiträge
|
Zeige solange die Daten geladen werden ein Loading-Layout. Also so lange geladen wird einfach eine ProgressBar anzeigen lassen und danach das eigentliche Layout laden.
__________________ Follow/Add/Circle/Whatever me on Google+ Solitaire HD, ein Solitaire optimiert für Honeycomb. |
| | |
| | #3 (permalink) |
| Android Experte Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
|
Dafür gibts das Attribut visibility (oder auch enbaled). Du machst die Buttons unsichtbar/disabled oder gone und machst sie sichbar, wenn du fertig bist. Zur Not kannst du auch an einen View (als den, wo die Buttons rein sollen) mit addView Buttons dynamisch hinzufügen. Das ganze hat nur einen Haken: Da man die UI nicht in Hintergrundthreads verändern kann, muss man da mit Handler oder AsyncTask arbeiten. ADD: wärend des Ladens zeigt man - wie the_alien auch sagt - natürlich einen progressdialog o.Ä.
__________________ Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon. Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten. Tipp: Zum "Danke" sagen gibt es einen Button. ![]() |
| | |
| | #4 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 15.08.2010
Beiträge: 66
Abgegebene Danke: 9
Erhielt 0 Danke für 0 Beiträge
|
das problem ist, dass das laden der daten und das aufbauen der tabview gleichzeitig stattfindet (was bei threads ja logisch ist) aber die tabs werden bereits dort geladen. Allerdings fehtl mir der Inhalt, da dieser noch nicht fertig geladen ist.
|
| | |
| | #5 (permalink) | |
| Android-Hilfe.de Mitglied Registriert seit: 15.08.2010
Beiträge: 66
Abgegebene Danke: 9
Erhielt 0 Danke für 0 Beiträge
| Zitat:
Code: new Thread(new Runnable() {
public void run(){
//load data from server
handler.sendEmptyMessage(0);
}
}).start(); Code: private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
TabHost mTabHost = getTabHost();
TabSpec tabtest1 = CreateTabHost(mTabHost, getApplicationContext(), "tab_test2", "test", test1Activity.class);
mTabHost.addTab(tabtest1);
TabSpec tabMap1 = CreateTabHost(mTabHost, getApplicationContext(), "tab_test1", "test2", test2Activity.class);
mTabHost.addTab(tabMap1);
mTabHost.setCurrentTab(0);
progDailog.dismiss();
}
}; ADD: folgende Fehlerneldung: 02-04 14:37:12.244: E/AndroidRuntime(11042): Uncaught handler: thread main exiting due to uncaught exception 02-04 14:37:12.254: E/AndroidRuntime(11042): java.lang.NullPointerException 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.widget.TabWidget.dispatchDraw(TabWidget.ja va:216) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.View.draw(View.java:6630) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewGroup.drawChild(ViewGroup.java:16 16) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewGroup.dispatchDraw(ViewGroup.java :1343) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewGroup.drawChild(ViewGroup.java:16 14) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewGroup.dispatchDraw(ViewGroup.java :1343) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewGroup.drawChild(ViewGroup.java:16 14) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewGroup.dispatchDraw(ViewGroup.java :1343) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewGroup.drawChild(ViewGroup.java:16 14) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewGroup.dispatchDraw(ViewGroup.java :1343) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.View.draw(View.java:6630) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.widget.FrameLayout.draw(FrameLayout.java:3 56) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewGroup.drawChild(ViewGroup.java:16 16) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewGroup.dispatchDraw(ViewGroup.java :1343) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewGroup.drawChild(ViewGroup.java:16 14) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewGroup.dispatchDraw(ViewGroup.java :1343) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.View.draw(View.java:6630) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.widget.FrameLayout.draw(FrameLayout.java:3 56) 02-04 14:37:12.254: E/AndroidRuntime(11042): at com.android.internal.policy.impl.PhoneWindow$Decor View.draw(PhoneWindow.java:1830) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewRoot.draw(ViewRoot.java:1349) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewRoot.performTraversals(ViewRoot.j ava:1114) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.view.ViewRoot.handleMessage(ViewRoot.java: 1633) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.os.Handler.dispatchMessage(Handler.java:99 ) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.os.Looper.loop(Looper.java:123) 02-04 14:37:12.254: E/AndroidRuntime(11042): at android.app.ActivityThread.main(ActivityThread.jav a:4370) 02-04 14:37:12.254: E/AndroidRuntime(11042): at java.lang.reflect.Method.invokeNative(Native Method) 02-04 14:37:12.254: E/AndroidRuntime(11042): at java.lang.reflect.Method.invoke(Method.java:521) 02-04 14:37:12.254: E/AndroidRuntime(11042): at com.android.internal.os.ZygoteInit$MethodAndArgsCa ller.run(ZygoteInit.java:868) 02-04 14:37:12.254: E/AndroidRuntime(11042): at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:626) 02-04 14:37:12.254: E/AndroidRuntime(11042): at dalvik.system.NativeStart.main(Native Method) 02-04 14:37:12.274: E/SemcCheckin(11042): Get crash dump level : java.io.FileNotFoundException: /data/semc-checkin/crashdump 02-04 14:37:12.284: I/dalvikvm(11042): threadid=7: reacting to signal 3 Geändert von ben56a (04.02.2012 um 14:38 Uhr) | |
| | |
| | #6 (permalink) | |
| Android-Hilfe.de Mitglied Registriert seit: 15.08.2010
Beiträge: 66
Abgegebene Danke: 9
Erhielt 0 Danke für 0 Beiträge
| Zitat:
| |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Sound Player im Background | efes312 | Business und Organisation | 4 | 28.11.2011 23:19 |
| Background apps HD? | demick | Acer Iconia A500 / A501 Forum | 3 | 22.10.2011 20:51 |
| Wallpaper/Background/Hintergründe | Mr.Svoboda | Sony Ericsson Xperia Neo / Neo V Forum | 3 | 04.07.2011 12:25 |
| Eigener Background | NautilusIII | Android Allgemein | 1 | 20.07.2010 11:30 |
| background service | swordi | Android App Entwicklung | 11 | 23.04.2010 10:23 |