In an Android application, we usually got the "Force Closed" error if we didn't handle the exceptions properly.
How can I restart my application automatically if it is force closed?
Is there any specific permission used for this?
In order to restart your application when it crashed you should do the following : In the onCreate method, in your main activity initialize a PendingIntent member: Intent intent = PendingIntent. getActivity( YourApplication.
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 case uncaughtException()
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 a PendingIntent
member:
Intent intent = PendingIntent.getActivity( YourApplication.getInstance().getBaseContext(), 0, new Intent(getIntent()), getIntent().getFlags());
Then put the following in your uncaughtException()
method:
AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 2000, intent); System.exit(2);
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 love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With