android - Thread.Wait() exception, not knowing how to fix it -


i have frameanimation, want start 3 second or so...therefore added in thread wait 3 second meet exception.

im havent done work thread before pretty first time using it, can help?

this code:

    public void settimerimage4bot() throws exception {     thread thread = new thread();      animationdrawable frameanimation =    (animationdrawable)bot.getdrawable();     frameanimation.setcallback(bot);     frameanimation.setvisible(true, true);     frameanimation.start();     log.i("baoanh","start");     thread.wait(3000);     frameanimation.stop();     log.i("baoanh","stop");     generaterandom();      } 

this error:

05-21 10:11:55.633: warn/system.err(740): java.lang.illegalmonitorstateexception: object not locked thread before wait() 05-21 10:11:55.633: warn/system.err(740): @ java.lang.object.wait(native method) 05-21 10:11:55.633: warn/system.err(740): @ java.lang.object.wait(object.java:326) 05-21 10:11:55.633: warn/system.err(740): @ com.example.papercissorsrock.game.settimerimage4bot(game.java:63) 05-21 10:11:55.633: warn/system.err(740): @ com.example.papercissorsrock.game$1.onclick(game.java:44) 05-21 10:11:55.633: warn/system.err(740): @ android.view.view.performclick(view.java:2408) 05-21 10:11:55.633: warn/system.err(740): @ android.view.view$performclick.run(view.java:8816) 05-21 10:11:55.633: warn/system.err(740): @ android.os.handler.handlecallback(handler.java:587) 05-21 10:11:55.633: warn/system.err(740): @ android.os.handler.dispatchmessage(handler.java:92) 05-21 10:11:55.633: warn/system.err(740): @ android.os.looper.loop(looper.java:123) 05-21 10:11:55.633: warn/system.err(740): @ android.app.activitythread.main(activitythread.java:4627) 05-21 10:11:55.643: warn/system.err(740): @ java.lang.reflect.method.invokenative(native method) 05-21 10:11:55.643: warn/system.err(740): @ java.lang.reflect.method.invoke(method.java:521) 05-21 10:11:55.643: warn/system.err(740): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:868) 05-21 10:11:55.643: warn/system.err(740): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:626) 05-21 10:11:55.643: warn/system.err(740): @ dalvik.system.nativestart.main(native method) 

you can use thread.sleep(3000);

but better use handler.postdelayed method also. using postdelayed can perform runnable task after interval

for example

handler handler = new handler(); handler.postdelayed(new runnable(){    public void run(){        tasks done after 3 seconds    }  },3000); 

Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -