Dialog崩溃我的应用程序

时间:2011-09-21 10:01:38

标签: android exception dialog handler

在我的应用程序中,我有一个从服务器加载一些图像的威胁。 下载图像后,它们将显示在对话框中。 这是有效的,但如果用户通过后退按钮离开屏幕,我的应用程序将崩溃与此logcat输出:

09-21 09:54:14.553: ERROR/AndroidRuntime(486): android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@4053fb28 is not valid; is your activity running?

应用程序正在运行,直到旧活动调用下面的代码(创建自定义对话框)。

我发现它崩溃了: 下载图像后我正在调用Handler。在处理程序中,我执行以下操作:

        final Dialog dialog = new Dialog(Product.this);
    dialog.setContentView(R.layout.imageview_inflator);
    dialog.setTitle("Choose a Picture");
    dialog.setCancelable(true);

    // set up image view
    final ImageView img = (ImageView) dialog.findViewById(R.id.imageView);
    img.setImageBitmap(ImageLoader.cache.get(pic_url[pictureCounter]));


    dialog.show();

如何避免崩溃。我想如果活动不是正在运行的话,我应该以某种方式避免显示对话框。

1 个答案:

答案 0 :(得分:1)

当您离开活动时,您收到此错误bcoz,您的线程仍在运行,并且它正在调用您的处理程序以显示对话框,并且该对话框没有可以显示它的活动。

您可以将对话框代码放在try-catch内来避免它,因为它会阻止您的应用崩溃。