相关疑难解决方法(0)

在AsyncTask中使用wait

当我使用a waitAsyncTask,我得到了ERROR/AndroidRuntime(24230): Caused by: java.lang.IllegalMonitorStateException: object not locked by thread before wait()

是否有可能使用Asynctask等待?怎么样?

谢谢

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();
    }
}  
Run Code Online (Sandbox Code Playgroud)

android wait android-asynctask

44
推荐指数
3
解决办法
8万
查看次数

如何在java中快速,干净地中止线程?

这是我的问题:我有一个对话框,其中包含一些用户可以更改的参数(例如通过微调器).每次更改其中一个参数时,我都会根据新参数值启动一个线程来更新3D视图.如果用户在第一个线程工作时更改了另一个值(或者通过在微调器箭头上单击多次再次返回相同的值),我想中止第一个线程(以及更新3D视图)并启动一个新线程使用最新的参数值.

我怎么能这样做?

PS:run()我的线程方法中没有循环,因此检查标志不是一个选项:更新3D视图的线程基本上只调用一个执行时间很长的方法.我无法在此方法中添加任何标志,要求中止,因为我无法访问其代码.

java multithreading

28
推荐指数
2
解决办法
5万
查看次数

标签 统计

android ×1

android-asynctask ×1

java ×1

multithreading ×1

wait ×1