In an Android application, we usually got the "Force Closed" error if we didn't get the exceptions right.
How can I restart my application automatically if it force closed?
Is there any specific permission is used for this?
In an Android application, we usually got the "Force Closed" error if we didn't get the exceptions right.
How can I restart my application automatically if it force closed?
Is there any specific permission is used for this?
The trick is make sure it doesn't Force Close in the first place.
If you use the
Thread.setDefaultUncaughtExceptionHandler()
method you can catch the Exceptions that are causing your application to Force Close.Have a look at this question for an example of using an
UncaughtExceptionHandler
to log the Exceptions raised by an application.To accomplish this you have to do two things:
See below how to do these:
Call
Thread.setDefaultUncaughtExceptionHandler()
in order to catch all uncaught exception, in which caseuncaughtException()
method will be called. "Force close" will not appear and the application will be unresponsive, which is not a quite good thing. In order to restart your application when it crashed you should do the following :In the
onCreate
method, in your main activity initialize aPendingIntent
member:Then put the following in your
uncaughtException()
method:You also must call
System.exit()
, otherwise will not work. In this way your application will restart after 2 seconds.Eventually you can set some flag in your intent that the application crashed and in your
onCreate()
method you can show a dialog "I'm sorry, the application crashed, hope never again :)".If you use Crittercism or some other error report service, accepted answer is almost right..
Just add this class in your package
Then simply call: