Auto Restart application after Crash/Force Close in Android

In an Android application, we usually got the “Force Closed” error if we didn’t get the exceptions right. Everyone has question about “How can I restart my application automatically if it force closed?”.

In this tutorial, we will learn how to handle exception manually and how to restart/auto launch your application after crash/force close.

To get Answer of your question is very simple. In that case you need to use Thread.setDefaultUncaughtExceptionHandler(). It will always enter in uncaughtException() in case your application crashed.

In order to restart your application when it crashed you should do the following thing.

Step 1

Create an Intent of your activity which you want to relaunch.

In this step, we take Intent to store which activity to launch with some flags.


Intent.FLAG_ACTIVITY_CLEAR_TOP is used because

If set, and the activity being launched is already running in the current task, then instead of launching a new instance of that activity, all of the other activities on top of it will be closed and this Intent will be delivered to the (now on top) old activity as a new Intent.

Intent.FLAG_ACTIVITY_CLEAR_TASK is used because

Flag will cause any existing task that would be associated with the activity to be cleared before the activity is started.

Intent.FLAG_ACTIVITY_NEW_TASK is used because

If set, this activity will become the start of a new task on this history stack. A task (from the activity that started it to the next task activity) defines an atomic group of activities that the user can move to.

Step 2

Inside your uncaughtException() method, write following code.

Didn’t get?

Here, PendingIntent is used. It is different then simple Intent. It stores request code and intent with its flags.

Read more about Intent flags.

AlarmManager is used to set an alarm to perform a task after 2 seconds. What we will do here is, we will start our application after 2 seconds. So we will set a timer to execute after 2 seconds and pass PendingIntent to it.

After that, we have to finish our current activity from where we got an exception. This is necessary step, also we need to exit from our application.

Full source code

In this code YourApplication is an application class. To know more about it, please read Usage of Application class in Android

To use this class in your application, use following code inside onCreate() method of activity.


In this tutorial, we learnt how to use UncaughtExceptionHandler in android application to handle exception manually. We also learnt how to restart application after crash or force close in Android.


Creative Commons License
This work by is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

You may also like to read

Develop apps faster using Data Binding – Part 4 Google has been pushing updates to existing tools and making the life of android developers easier. They also have been releasing new libraries and AP...
Customizing TextInputLayout – Part 2 In previous article Customizing TextInputLayout - Part 1, we learnt how to customize TextInputLayout and how to apply hint color to it. Going t...
MaxHeightScrollView in Android using Android Studi... In Android, there are two constants for providing height and width of any view. But if you provide any specific height to any view, it won't be change...
Using Facebook’s Shimmer effect in Android &... In this tutorial, you will learn about how to implement "Shimmer effect" developed by Facebook for Android. Download Source Code
Share on Facebook6Share on Google+8Tweet about this on TwitterShare on LinkedIn0Share on Reddit0Pin on Pinterest0Share on Tumblr0Email this to someone