2010-12-02 26 views
2

Dans mon activité, j'appelle les services Web. Donc, après que le webservice renvoie le résultat, je dois montrer une alerte. Puisque l'alerte est une partie de l'interface utilisateur, je pense que dans onPostExecute() je dois écrire le code d'alerte. Mais quand je l'aime, cette erreur arrive.comment afficher l'alerte après avoir appelé le service Web

erreur apparaît:

12-02 09:59:08.508: ERROR/AndroidRuntime(451): Uncaught handler: thread main exiting 
due to uncaught exception 
12-02 09:59:08.528: ERROR/AndroidRuntime(451): 
android.view.WindowManager$BadTokenException: Unable to add window -- token 
[email protected] is not valid; is your 
activity running? 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
android.view.ViewRoot.setView(ViewRoot.java:456) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
android.view.Window$LocalWindowManager.addView(Window.java:409) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
android.app.Dialog.show(Dialog.java:238) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
android.app.AlertDialog$Builder.show(AlertDialog.java:802) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at com.myapp.android.activities.Register$PostCodeTask.onPostExecute(Register.java:291) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at  com.myapp.android.activities.Register$PostCodeTask.onPostExecute(Register.java:1) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
android.os.AsyncTask.finish(AsyncTask.java:416) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
android.os.AsyncTask.access$300(AsyncTask.java:127) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:428) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
android.os.Handler.dispatchMessage(Handler.java:99) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
android.os.Looper.loop(Looper.java:123) 
android.app.ActivityThread.main(ActivityThread.java:4203) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
java.lang.reflect.Method.invokeNative(Native Method) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
java.lang.reflect.Method.invoke(Method.java:521) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549) 
12-02 09:59:08.528: ERROR/AndroidRuntime(451):  at dalvik.system.NativeStart.main(Native 
Method) 

Quelqu'un peut-il s'il vous plaît aider à résoudre mon problème. Merci d'avance :)

+0

Mathew Pouvez-vous s'il vous plaît nous montrer le pseudo code. –

+0

(s'il vous plaît ne pas abuser le "flag => nécessite l'attention du modérateur", c'est à des fins administratives, par exemple la suppression de contenu inapproprié) –

+0

ok ... désolé drapeau mal compris ... – Mathew

Répondre

1

Vous devez exécuter votre code d'alerte dans le thread UI. Il ya peu de façons de le faire par exemple

runOnUiThread(new Runnable() { 
    public void run() { 
     Toast.makeText(MyActivity.this, "Hello there", Toast.LENGTH_LONG).show(); 
    } 
}); 
+0

toast fonctionnera. Mais l'alerte ne vient pas. Toujours la même erreur. – Mathew

+0

J'espère que vous ne manquez pas alert.show() appel. M'a arrivé plus d'une fois – Bostone