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
Post a Comment