I been told that starting activity from application context is bad idea, and you should prefer using activity context where possible.
Intent intent = new Intent(appContext, MyActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
appContext.startActivity(intent);
So I read Google article about tasks: Tasks and Back Stack.
It says that each stack got its taskAffinity id, and if new activity will be lunched with taskAffinity id that belong to already running task, than it will be placed in that task(if lunch mode is default or single top).
So if you didn't declare taskAffinity id for your activity, it will not matter if you lunching your activity from app context or activity context.
But once again, I been told that using app context to start new activity is a bad practice. So please tell me, why is that so? Do I missing important cases where I should pay attention to?