I want to start a new activity from my UncaughtExceptionHandler
when an uncaught exception appears. Is this possible?
I think the current activity can't start a new child activity in its "error" state because I always get this errors:
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}
I tried to start the child activity from a new thread, because i thought the current thread might be in a state where it is not allowed to start a new activity but this didn't work too.
So does anyone know how this could work? How do i prevent the current activity from blocking everything while in this error state? is the any way to set the exception to handled?
What you will need to do is specify your exception display
Activity
in your manifest file and setandroid:taskAffinity
andandroid:process
to values different from your main process. Then you'll need to specify an intent filter and use that to start the activity and pass the data.By default the taskAffinity is inheried from the main
<application>
tag and is the same page name set in the<manifest>
tag. You probably want something likeandroid:taskAffinity="org.example.package.TASK.ExceptionDisplay"
By default everything in one
<application>
tag runs in the same process. You can change that using theandroid:process
attribute you probably want something likeandroid:process=":exception_process"
.Check out this documentation for more details.