To check whether you application is running or not what you can do is :-
if(isProcessRunning("package_name")) {
Intent i = new Intent(context, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
public boolean isProcessRunning(String process) {
ActivityManager activityManager = (ActivityManager) this.getSystemService( ACTIVITY_SERVICE );
List<RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
for(int i = 0; i < procInfos.size(); i++){
if (procInfos.get(i).processName.equals(process)) {
return true;
}
}
return false;
}
Try this it will works.
If your application is having only one or two activity or if your application have one BaseActivity which is extends by other then do it like:-
public class MyApplication extends Application{
private static boolean mIsRunning = false;
public static boolean isRunning(){
return mIsRunning;
}
public void setRunning(boolean isRunning){
mIsRunning = isRunning;
}
}
From Your activity do:-
public void onCreate(Bundle savedInstanceState){
MyApplication.setRunning(true);
}
public void onDestroy(){
MyApplication.setRunning(false);
}
And you can check like this:-
if(!MyApplication.isRunning()) {
Intent i = new Intent(context, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}