I need to know a generic way to distinguish between a call of activity from launcher and a call from another activity from inside my app, or a BACK on the activity stack
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 activities else launch from home page