除了AsyncTask之外,Android中还有其他线程在UI线程上做某事吗?

时间:2013-07-25 15:28:54

标签: java android multithreading android-asynctask

由于一些奇怪的原因,当我使用AsyncTask连接到网页时,我的应用程序的UI几乎落到了冻结点,而AsyncTask正在连接到网页。

我认为这是因为连接通常需要很长时间,至少需要4秒。

我希望能够在Thread完成后更新我的TextView,但除了使用AsyncTask之外,我怎么在Android中这样做呢?

2 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点:

  • 使用主题或Runnables
  • 使用处理程序,向其
  • 发送消息
  • 使用RunOnUIThread方法
  • 使用方法(这是我最喜欢的)帖子。没有必要使用上下文/活动实例

例如,您可以创建一个新的Handler(),并且当您想在主线程中运行代码时执行:

  public static Handler interfaceHandler = new Handler();

 ...

  mInterfaceHandler.post(new Runnable() {

        @Override
        public void run() {
            //Your stuff
        }
    });

要完成此信息,Android中的所有视图都可以发布此帖子(Runnable)。此方法为其任务添加了一个runnable,因此建议不要使用视图,因为App会慢下来。静态处理程序非常适合实现,并且非常容易实现

答案 1 :(得分:0)

这样的事情应该有效

runOnUiThread(new Runnable() {
       public void run() {
            // do some stuff here
       }
   });