Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java UI线程冻结_Java_Android_Multithreading - Fatal编程技术网

Java UI线程冻结

Java UI线程冻结,java,android,multithreading,Java,Android,Multithreading,我正在使用以下函数创建一个新线程 public void toCallAsynchronous() { mThread = new Thread() { public void run() { while (true) { try { // do something here if(mLoggedIn)

我正在使用以下函数创建一个新线程

public void toCallAsynchronous() {
    mThread = new Thread() {
        public void run() {
            while (true) {
                try {
                    // do something here
                    if(mLoggedIn)
                    {
                        boolean syncresult = mDownload.syncData();
                    }
                    Log.d(TAG, "local Thread sleeping");
                    Thread.sleep(10000);
                    //mHandler.postDelayed(this, 1000);
                } catch (InterruptedException e) {
                    Log.e(TAG, "local Thread error", e);
                }
            }
        }
    };
    mThread.start();
}
我在onResume中调用此线程,因为我希望此线程仅在用户登录到其帐户时启动。synData函数访问服务器以获取新文件,下载它们并将条目更新到数据库中。您能指出我在这里做错了什么吗?

(true)
很奇怪,因为您可能不希望此线程永远运行。至少在(!isFinishing())


此外,您还需要确保
mDownload.syncData
不会尝试访问任何UI,如果尝试访问,将出现异常。

谢谢Alex。我将其更改为while(mRunning),在onResume中将其设置为true,在onPause和onDestroy中将其设置为false。此外,在syncData上也有一些UI操作,在删除它后运行得非常好。