0

Google が AsyncTask のスレッド モデルを再設計したことを発見した後、ブロック コードの重大なバグが発生したため、AsyncTask の使用を中止し、単純に Threads と Runnables を使用することにしました。私の議論ではありません。私が知りたいのは、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