首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UI线程冻结

UI线程冻结
EN

Stack Overflow用户
提问于 2012-11-01 14:01:05
回答 1查看 96关注 0票数 0

我正在使用下面的函数创建一个新线程。

代码语言:javascript
复制
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函数访问服务器以获取新文件,下载它们并更新数据库中的条目。你能指出我在这里做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2012-11-01 14:12:04

while(true)很奇怪,因为您可能不希望这个线程永远运行。至少应该是while(!isFinishing())

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13171749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档