0

在发现 Google 重新设计了 AsyncTask 中的线程模型,现在带有一个主要的阻塞代码错误后,我选择放弃使用 AsyncTask 并简单地使用 Threads 和 Runnables,所以请不要在 AsyncTask 上发表任何评论,因为那是不是我的讨论。我想知道的是以下是否是实现在 UI 线程上运行内容的嵌套 Runnable 的正确方法:

private class MyOuterRunnable implements Runnable
{
  @Override
  public void run()
  {
    int x = 1;

    // Do something on the UI thread.
    runOnUiThread(new Runnable()
    {
      public void run()
      {
        // Update a listview, etc.
      }
    });
  }
}

在大多数情况下,这似乎可行,但是我在以这种方式执行此操作的某些模块中遇到了崩溃。这是从嵌套的 Runnable 中执行 UI 内容的正确方法还是我应该以不同的方式执行它?所有 LogCat 告诉我的是嵌套可运行文件中发生了致命错误,但没有提供任何详细信息。

4

0 回答 0