Android ProgressDialog运行时异常错误

时间:2011-03-20 01:13:50

标签: android progressdialog runtimeexception

我在尝试将ProgressDialog放入我的应用程序时遇到了麻烦。在我的GameEngine类(没有扩展任何东西)中,我有如下所示的代码。第一行产生运行时异常,虽然我遇到了这个似乎是同一个错误的线程:Android TimerTask throws RuntimeException if Show ProgressDialog is added in run(),但我真的不明白如何实现该解决方案。任何帮助将不胜感激,谢谢。

    //Create ProgressDialog
    ProgressDialog dialog = ProgressDialog.show(context, "", 
            "Loading...", true);

    //Set Clusters before level starts
    for (int i = 0; i < 80; i++)
    {
        updateBacteria();
        updateAttraction();
        checkCollisions();
        moveObjectsAwayFromWalls();
    }

    dialog.dismiss();

2 个答案:

答案 0 :(得分:2)

您只能在UI线程中显示对话框(这是扩展Activity的主要类)。为了能够这样做,您可以编写Handler并使用它将消息从非UI线程发送到UI线程。 Android有一个这样的例子in their ProgressDialog example.查看他们在“带有第二个线程的示例ProgressDialog”下的代码片段。

您也可以按照您提供的链接答案中所述的相同方法,尽管Handler是一种更强大的方法。

答案 1 :(得分:1)

如果此方法未在主活动线程中运行,则应更改它。怎么样?在主活动中设置一个处理程序并将其传递给线程(上图)。在handler中,您应该实现方法的GUI相关部分(即ProgressDialog)。当您需要显示ProgressDialog时,只需调用Handler,然后继续处理(在这种情况下为您的循环)。与dismiss()相同。