начало действия по вызову uncaughtException () - PullRequest
4 голосов
/ 14 июля 2010

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

Я думаю, что текущее действие не может запустить новое дочернее действие в состоянии «ошибка», потому что я всегда получаю следующие ошибки:

07-14 14:34:06.075: INFO/ActivityManager(74): Starting activity: Intent { flg=0x10000000 cmp=de.rwth/system.ErrorHandler (has extras) }
07-14 14:34:06.615: WARN/ActivityManager(74): Activity pause timeout for HistoryRecord{4338f8d8 de.rwth/.main}
07-14 14:34:16.115: WARN/ActivityManager(74): Launch timeout has expired, giving up wake lock!
07-14 14:34:16.628: WARN/ActivityManager(74): Activity idle timeout for HistoryRecord{433a89d8 de.rwth/system.ErrorHandler}

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

Так кто-нибудь знает, как это может работать?Как я могу предотвратить текущую активность, чтобы заблокировать все в то время как в этом состоянии ошибки?Есть ли способ установить исключение для обработки?

1 Ответ

5 голосов
/ 14 июля 2010

Что вам нужно будет сделать, это указать отображение исключений Activity в файле манифеста и установить для android:taskAffinity и android:process значения, отличающиеся от вашего основного процесса.Затем вам нужно будет указать фильтр намерений и использовать его для запуска действия и передачи данных.

По умолчанию taskAffinity наследуется от основного тега <application> и является тем же именем страницы, которое установлено в теге <manifest>.Вы, вероятно, хотите что-то вроде android:taskAffinity="org.example.package.TASK.ExceptionDisplay"

По умолчанию все в одном теге <application> выполняется в одном и том же процессе.Вы можете изменить это с помощью атрибута android:process, который вам, вероятно, нужен, например, android:process=":exception_process".

Для получения более подробной информации ознакомьтесь с документацией .

...