Differentiating between an Activity launch from home screen or from another activity from App Differentiating between an Activity launch from home screen or from another activity from App android android

Differentiating between an Activity launch from home screen or from another activity from App


In the onCreate of your Activity, call getIntent(). If the Activity is started from the launcher (home screen) the values for getAction() will be android.intent.action.MAIN and the getCategories() will return a set which will contain the android.intent.category.LAUNCHER category.If the activity is started from elsewhere these values may be null.


In addition to @advantej's answer, you can extend each start-call to that activity adding an extra to the starting intent (e.g. intent.putExtra("caller", this.getClass().getSimpleName());

In the activity's onCreate method you can check then what @advantej suggests.

If the initiator is not the home-screen icon, than you can check further if the intent.hasExtra("caller") returns true, and if so, what is it.


You can find it out from intent flag.

step 1:

  Intent intent = getIntent();  int flag = intent.getFlag();

step 2:

if flag  =  Intent.FLAG_ACTIVITY_NEW_TASK   launch from other app or activitieselse   launch from home page