Диалог вылетает из моего приложения - PullRequest
1 голос
/ 21 сентября 2011

В моем приложении есть угроза, которая загружает некоторые изображения с сервера. После загрузки изображений они отображаются в диалоговом окне. Это работает, но если пользователь покидает экран с помощью кнопки «назад», мое приложение падает с выводом 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?

Приложение работает до тех пор, пока старое действие не вызовет приведенный ниже код (создание настраиваемого диалогового окна).

Я понял, что там происходит сбой: Я звоню обработчику после загрузки изображений. В обработчике делаю следующее:

        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 Ответ

1 голос
/ 21 сентября 2011

Вы получаете эту ошибку bcoz, когда выходите из действия, ваш поток все еще работает, и он вызывает ваш обработчик, чтобы показать диалоговое окно, и диалоговое окно не имеет действия, над которым его можно показать.

Вы можетеизбегайте этого, поместив код диалога внутри try-catch, так как это предотвратит сбой вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...