StartActivity的2种用法

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

猜你喜欢

转载自blog.csdn.net/chengsiguo/article/details/88422311