Android Intent to start Main activity of application
Solution 1
this is not the right way to startActivity.
try this code instead:
Intent startIntent = new Intent(context, MainActivity.class);
startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startIntent);
Solution 2
Copy from another topic:
This works since API Level 3 (Android 1.5):
private void startMainActivity(Context context) throws NameNotFoundException {
PackageManager pm = context.getPackageManager();
Intent intent = pm.getLaunchIntentForPackage(context.getPackageName());
context.startActivity(intent);
}
Solution 3
Even I had been trying to launch the MainActivity via a library Activity.
And this worked for me:
Intent startIntent = new Intent();
startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startIntent.setPackage(getApplicationContext().getPackageName());
getApplicationContext().startActivity(startIntent);
Make sure you add the activity in your library's manifest!
Abhishek
Master student at Georgia Tech. Android Developer. Interest in User Experience. Weekly online programming competitions. Entrepreneur.
Updated on July 21, 2022Comments
-
Abhishek almost 2 years
I am trying to start the main activity from inside a BroadcastReceiver. I dont want to supply the activity class name but to use the action and category for android to figure out the main activity.
It doesnt seem to work.
Sending Code:
Intent startIntent = new Intent(); startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startIntent.setAction(Intent.ACTION_MAIN); startIntent.setPackage(context.getPackageName()); startIntent.addCategory(Intent.CATEGORY_LAUNCHER); context.startActivity(startIntent);
I get this error:
Caused bt: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.xyz.abc (has extras) }
Any ideas?