Обработка диалогового окна прогресса во время выполнения IntentService

Я использую IntentService, механизм ResultReceiver для длительной задачи и показываю диалоговое окно прогресса в своей деятельности во время запуска IntentService. Когда задача завершается в службе намерений, я отправляю соответствующий код результата в действие в onReceiveResult и соответствующим образом закрываю диалоговое окно хода выполнения. Все работает нормально, за исключением случаев, когда меняется ориентация устройства, во время которой приложение вылетает из-за уничтожения активности, и служба Intent пытается отправить resultCode уничтоженной активности.

Я не хочу останавливать систему, чтобы воссоздать мою активность при повороте экрана.

Как справиться с этим?


person Kaps    schedule 23.01.2014    source источник
comment
сколько времени занимает выполнение задания. если это асинхронная задача, я могу предоставить вам решение и опубликовать некоторые из ваших действий и служебный код.   -  person Raghunandan    schedule 23.01.2014
comment
Мы можем добиться этого с помощью AsyncTask, но и с этим подходом тоже должно быть решение.   -  person Kaps    schedule 23.01.2014
comment
я не устал никакого решения для этого. для asynctask у меня есть решение Алекса Луквуда   -  person Raghunandan    schedule 23.01.2014


Ответы (1)


Вот не рекомендуемое, но рабочее решение:

Добавьте эту строку в свой манифест:

android:configChanges="orientation"

так это выглядит

<activity android:label="@string/app_name" 
        android:configChanges="orientation|keyboardHidden" 
        android:name=".your.package">

Дополнительную информацию см. . этот пост

Вот также более полный ответ Рето Мейера здесь

person bashizip    schedule 23.01.2014
comment
цитируя оп, я не хочу останавливать систему, чтобы воссоздать мою активность при повороте экрана.. я уже предлагал это и удалил ее, так как он не хочет останавливать воссоздание активности - person Raghunandan; 23.01.2014