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