1.显示调用。通过指明ComponentName,显示调用Activity,若
Intent intent = new Intent(firstActivity.this, secondActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
这种用法需要注意的是在AndroidManifest.xml声明一下Activity,
否则将报throws ActivityNotFoundException if there was no Activity found to run the given Inten
<activity android:name="firstActivity"
android:launchMode="singleTask"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
2.隐式调用,只需要指明ACTION就可以了,若
Intent intent = new Intent("com.android.firstActivity.ACTION"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
这种用法在AndroidManifest.xml声明Activity需要在intent-filter中添加该ACTION
<activity android:name="firstActivity"
android:launchMode="singleTask" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.android.firstActivity.ACTION"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
需要注意的是,自定义的ACTION不能加在android.intent.action.MAIN所在的intent-filter中,必须添加在一个新的intent-filter中,同时必须设置category android:name="android.intent.category.DEFAULT,
否则将报throws ActivityNotFoundException if there was no Activity found to run the given Intent
Intent intent = new Intent(firstActivity.this, secondActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
这种用法需要注意的是在AndroidManifest.xml声明一下Activity,
否则将报throws ActivityNotFoundException if there was no Activity found to run the given Inten
<activity android:name="firstActivity"
android:launchMode="singleTask"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
2.隐式调用,只需要指明ACTION就可以了,若
Intent intent = new Intent("com.android.firstActivity.ACTION"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
这种用法在AndroidManifest.xml声明Activity需要在intent-filter中添加该ACTION
<activity android:name="firstActivity"
android:launchMode="singleTask" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.android.firstActivity.ACTION"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
需要注意的是,自定义的ACTION不能加在android.intent.action.MAIN所在的intent-filter中,必须添加在一个新的intent-filter中,同时必须设置category android:name="android.intent.category.DEFAULT,
否则将报throws ActivityNotFoundException if there was no Activity found to run the given Intent