在AsyncTask的使用等待 [英] Using wait in AsyncTask

查看:255
本文介绍了在AsyncTask的使用等待的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

java.lang.IllegalMonitorStateException:产生的原因:对象没有

使用的的AsyncTask ,我得到 ERROR / AndroidRuntime(24230)等待时等待之前锁定的线程() 。是否有可能使用只为等待的AsyncTask ?怎么样?

感谢

 类WaitSplash扩展的AsyncTask<虚空,虚空,虚空> {
    保护无效doInBackground(虚空...... PARAMS){
        尝试 {
            等待(MIN_SPLASH_DURATION);
        }赶上(InterruptedException异常E){
            // TODO自动生成的catch块
            e.printStackTrace();
        }
        返回null;
    }

    保护无效onPostExecute(){
        waitSplashFinished = TRUE;
        成品();
    }
}
 

解决方案

使用<一个href="http://docs.oracle.com/javase/6/docs/api/java/lang/Thread.html#sleep%28long%29">Thread.sleep()而不是等待()

when using a wait in an AsyncTask, I get ERROR/AndroidRuntime(24230): Caused by: java.lang.IllegalMonitorStateException: object not locked by thread before wait() . Is it possible to use an Asynctask just for waiting? How?

Thanks

class WaitSplash extends AsyncTask<Void, Void, Void> {
    protected Void doInBackground(Void... params) {
        try {
            wait(MIN_SPLASH_DURATION);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }       

    protected void onPostExecute() {
        waitSplashFinished = true;
        finished();
    }
}  

解决方案

Use Thread.sleep() instead of wait().

这篇关于在AsyncTask的使用等待的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆