android - Fix Can't create handler inside thread that has not called Looper.prepare() -


edit: did of stack overflow friends inside thread display video view inside of dialog in android freezes application me big in advance

this activity thread :

auto_bucket_tests_thread = new thread(new runnable()          {              @suppresswarnings("deprecation")             @override             public void run() {                  while(test_completed==false)                 {                     if(login.bucket_status==true && video_status==false)                     {                          new handler(looper.getmainlooper()).post(new runnable() {                              @override                             public void run() {                                 bucket_open_error();                              }                         });                     }                     else if(login.bucket_status==false && video_status==true)                     {                     videodialog.cancel();                        }                 }                 auto_bucket_tests_thread.stop();             }         });       }            protected void bucket_open_error() {         videodialog = new dialog(this);         videodialog.requestwindowfeature(window.feature_no_title);         videodialog.setcontentview(r.layout.videodialog);         videodialog.show();         windowmanager.layoutparams layout_params =new windowmanager.layoutparams(layoutparams.wrap_content,layoutparams.wrap_content);         layout_params.copyfrom(videodialog.getwindow().getattributes());         layout_params.dimamount=0;         videodialog.getwindow().setattributes(layout_params);          final videoview video = (videoview)videodialog.findviewbyid(r.id.videoview_dialog);          uri uri = uri.parse("android.resource://"+getpackagename()+"/"+r.raw.doorsclosing);         video.setvideouri(uri);         video.start();         video.setoncompletionlistener(new mediaplayer.oncompletionlistener() {              public void oncompletion(mediaplayer mp) {                 video_status=true;                 video.start();                 //app_message.show();               }     }); 

you trying create handler thread. if u dont want handler communicate ui thread create different thread , not handler. if u want handler communicate ui thread u need pass looper constructor.

new handler(looper.getmainlooper());

edit: replace

runonuithread

with

new handler(looper.getmainlooper()).post

runonuithread activity method create handler , post runnable in ui thread, because youare running on thread (created new thread , ran it) cant post ui becuase new handler has no connection ui (hence didint call looper prepare exeception).


Comments

Popular posts from this blog

How to connect android app to App engine -

gcc - MinGW's ld cannot perform PE operations on non PE output file -

php - display validation error message next to the textbox in codeigniter -