Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

[GELÖST]Toast im Thread APP Crashed

Das Thema "[GELÖST]Toast im Thread APP Crashed" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 20.11.2011, 12:58   #1 (permalink)
Junior Mitglied

Registriert seit: 14.07.2009
Beiträge: 33
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard [GELÖST]Toast im Thread APP Crashed

Hallo zusammen,

ich muss nochmal was fragen.

in meiner main class

PHP-Code:
public class BTCar2 extends Activity implements OnClickListener 
steht unter anderem dies drinne
PHP-Code:
public void EngineStart() {
up "Start";
BTTH true;
Log.e(TAGup);

//Neue Klasse DemoThread!!
DemoThread demoThread;
demoThread = new DemoThread();
demoThread.start();

dann gibt es im Ordner src/com/ zwei Datein BTCar2.java & DemoThread.java


und in dem DemoThread steht folgendes

PHP-Code:
import android.app.Activity;
import android.util.Log;
import android.widget.Toast;


public class 
DemoThread extends Thread {
    
    public 
void run() {Smileys[IMG]http://1.2.3.12/bmi/www.android-hilfe.de/images/smilies/extra/sleep.gif[/IMG][IMG]http://1.2.3.13/bmi/www.android-hilfe.de/images/smilies/extra/flapper.gif[/IMG][IMG]http://1.2.3.13/bmi/www.android-hilfe.de/images/smilies/extra/mad.gif[/IMG][IMG]http://1.2.3.9/bmi/www.android-hilfe.de/images/smilies/extra/scared.gif[/IMG]
        
        
while(BTCar2.BTTH)
            
 {
            
Log.e(BTCar2.TAG,"LOL");
            
            
DemoThread2.lol();
            
        try {
          
sleep(500);
        }
        catch(
InterruptedException e) {
        }
        
     
    }
}

public static class 
DemoThread2 extends Activity  {

    public static 
void lol() {
        
Toast.makeText(BTCar2.BTCar.getApplicationContext(),"Connection missing, reconnect",Toast.LENGTH_SHORT).show();
        
    }}} 
wird nun versucht der Toast auszuführen crashed die APP obwohl Eclipse mir keinen Fehler anzeigt. Kann mir bitte jemand helfen?

Danke

Geändert von tau31535 (25.11.2011 um 19:18 Uhr) Grund: gelöst
tau31535 ist offline   Mit Zitat antworten
Alt 20.11.2011, 19:35   #2 (permalink)
Android Experte
 
Benutzerbild von DieGoldeneMitte

Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
Standard AW: Toast im Thread APP Crashed

Der Trick ist, dass nur der UI Thread einer (bzw. der ) aktiven Activty "toasten" darf. Bloß eine Klasse von Activity erben zu lassen und dort dann eine Methode aufzurifen, reicht da natürlich nicht. (Aber das hast du ja schon gemerkt, weil du dir da den ApplicationContext abholst)

Hier steht, wie es geht:
http://developer.android.com/guide/t...#WorkerThreads

oder man benutzt einen Handler
__________________
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.

Geändert von DieGoldeneMitte (20.11.2011 um 19:41 Uhr)
DieGoldeneMitte ist offline   Mit Zitat antworten
Folgende Benutzer bedanken sich bei DieGoldeneMitte für diesen Beitrag:
samarek (24.11.2011), tau31535 (21.11.2011)
Alt 21.11.2011, 00:00   #3 (permalink)
Junior Mitglied

Registriert seit: 14.07.2009
Beiträge: 33
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard AW: Toast im Thread APP Crashed

Danke dir,

da ich nicht viel Ahnung von Java habe, habe ich einfach ein wenig rumprobiert.

Habe ich denn eigentlich irgendwie nun ne möglichkeit im Thread nen Toast zu erzeugen oder muss ich das immer an die Hauptactivity zurückübergeben.

Wenn es geht in meinem Thread nen Toast zu erzeugen, kannst du mir vll. nen bsp. code liefern, da ich nen Linkinhalt nicht verstehe

Die ganzen Syntaxen sind für mich immer noch sehr abstrakt so das ich die ganzen Zusammenhänge mit .start() etc. nicht richtig verstehe!

Sry.

Also hoffe ich auf nen beispiel^^.

Danke schonmal für die INFO!!
tau31535 ist offline   Mit Zitat antworten
Alt 21.11.2011, 09:16   #4 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Toast im Thread APP Crashed

naja ohne grundlagen ist es immer schwer.

versuch dich zuerst an einfacheren apps ohne threading vielleicht. das thema ist aber ein sehr wichtiges und für ernstzunehmende apps sehr wichtig.
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 21.11.2011, 12:28   #5 (permalink)
Junior Mitglied

Registriert seit: 14.07.2009
Beiträge: 33
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard AW: Toast im Thread APP Crashed

Der Thread ist aber erforderlich da ich dauerhaft beim Drücken eines Button's in einer Schleife den Befehl Start über BT verschicke. Mache ich das ohne Thread wird das loslassen nicht mehr erkannt.
Sinn für den Handler ist mir einen Toast zu liefern wenn ein Fehler beim Senden auftritt (Exception)

@swordi

vll. kannst du mir nen bsp. für nen Handler geben. habe verschiede beispiele gesehen mit Handler auf andnevv oder so. Konnte aber es nicht implementieren.

sry.
tau31535 ist offline   Mit Zitat antworten
Alt 21.11.2011, 12:32   #6 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Toast im Thread APP Crashed

hmm wo liegt das problem bei der implementation? welche fehler gibts?

handler anlegen. handler aufrufen. fertig.
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 21.11.2011, 18:05   #7 (permalink)
Junior Mitglied

Registriert seit: 14.07.2009
Beiträge: 33
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard AW: Toast im Thread APP Crashed

für dich einfach für mich unverständlich

ich versuch es mal

PHP-Code:
Handler messageHandler = new Handler() {

        @
Override
        
public void handleMessage(Message msg) {  
            switch(
msg.what) {
            case 
5:
                
Toast.makeText(BTCar2.this,"Handle mich haha",Toast.LENGTH_SHORT).show();
            }
        }

    }; 
ich hoffe nun das es so passt.

Jetzt weiss ich nur nicht, wie ich von einer anderen Klasse der einen Thread enthält eine Nachricht zu meinem Handler schicke. Wenn ich in er gleichen Klasse bin ohne Thread funktioniert es mit
PHP-Code:
sendMessage 
. Aber als Sender von einer anderen Classe in einem Thread ???

ich bin Radlos
tau31535 ist offline   Mit Zitat antworten
Alt 21.11.2011, 21:04   #8 (permalink)
Android Guru

Registriert seit: 09.05.2009
Beiträge: 2.389
Abgegebene Danke: 36
Erhielt 307 Danke für 289 Beiträge
Standard AW: Toast im Thread APP Crashed

Einfach messageHandler.sendEmptyMessage(5)

Der thread muss halt den Händler kennen
__________________
App Entwicklung
Latest apps: Media Streamer BETA | DailyCash | MoneyManager ( PRO | HD )
swordi ist offline   Mit Zitat antworten
Alt 22.11.2011, 08:07   #9 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Sensation

Registriert seit: 31.08.2011
Beiträge: 390
Abgegebene Danke: 25
Erhielt 59 Danke für 57 Beiträge
Standard AW: Toast im Thread APP Crashed

Also wenn du es dir einfach machen willst, dann hast du meiner Meinung nach 2 Möglichkeiten.

- Du übergibst deinem Thread im Konstruktor den Context der aufrufenden Activity. Dann mußt du keine "Pseudo-Activity-Klasse" definieren, um den Tost zu erzeugen. Und dann einfach mit runOnUIThread() deinen Toast anzeigen.
- oder du definierst in deiner aufrufenden Activity eine Methode zum Anzeigen des Toast (showToast() oder so) und übergibst deinem Thread im Konstruktor die Referenz auf deine Activity. Dann kannst du die Methode von deinem Thread aus aufrufen. Die Anzeige vom Toast könnte hier evtl. ohne runOnUIThread funktionieren, bin mir aber nicht sicher.

In beiden Fällen mußt du dich jedenfalls nicht mit dem Handler rumplagen, ist vielleicht einfacher und verständlicher für dich ;-)
Tom299 ist offline   Mit Zitat antworten
Alt 25.11.2011, 19:16   #10 (permalink)
Junior Mitglied

Registriert seit: 14.07.2009
Beiträge: 33
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard AW: Toast im Thread APP Crashed

Danke an alle.

Ich habe in der onCreate

PHP-Code:
mHandler = new Handler(){
    public 
void handleMessage(Message msg) { 
ergänzt und im der anderen classe aus einem Thread

PHP-Code:
Meine activity Classe.mHandler.sendEmptyMessage(3);
                        
BTCar2.mHandler.sendEmptyMessage(5); 
Danke an alle
tau31535 ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
neuer Kontakt - App crashed kamikaze2075 Root / Hacking / Modding für Samsung Galaxy S2 6 18.01.2012 11:42
Toast kommt zu spät Gibbsnich Android App Entwicklung 1 30.08.2011 15:53
Email App Crashed permanent - auch nach Neustart Hille Sonstige Apps & Widgets 7 09.01.2011 20:36
layout einstellungen von toast-element android_newbie Android App Entwicklung 2 02.09.2010 13:55
GPS onLocationChanged & Toast Nachrichten K2DaC Android App Entwicklung 2 05.07.2010 15:24




Du liest gerade: "[GELÖST]Toast im Thread APP Crashed" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.