0

因为一些奇怪的原因,当我使用 AsyncTask 连接到网页时,我的应用程序的 UI 在 AsyncTask 连接到网页时几乎滞后到冻结点。

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

我希望能够在我的线程完成后更新我的 TextView,但是除了使用 AsyncTask 之外,我如何在 Android 中做到这一点?

4

2 回答 2

1

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

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

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

  public static Handler interfaceHandler = new Handler();

 ...

  mInterfaceHandler.post(new Runnable() {

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

补全信息,Android中的所有View都可以发这个post(Runnable)。这种方法为他们的任务添加了一个runnable,因此建议不要使用视图,因为应用程序会变慢。静态处理程序非常适合完成这项工作,并且非常容易实现

于 2013-07-25T15:40:45.427 回答
0

像这样的东西应该工作

runOnUiThread(new Runnable() {
       public void run() {
            // do some stuff here
       }
   });
于 2013-07-25T15:40:11.397 回答