在 AndroidManifest.xml中注册一个Activity时,可指定Action
<activity
android:name="mstar.factorymenu.ui.MainActivity"
android:label="@string/app_name"
android:launchMode="singleInstance" >
<intent-filter>
<action android:name="mstar.tvsetting.factory.intent.action.MainmenuActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
android:name="mstar.factorymenu.ui.MainActivity"
android:label="@string/app_name"
android:launchMode="singleInstance" >
<intent-filter>
<action android:name="mstar.tvsetting.factory.intent.action.MainmenuActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
使用隐式意图:
Intent mIntent=new Intent();
mIntent.setAction("mstar.tvsetting.factory.intent.action.MainmenuActivity");
startActivity(mIntent);
注意:在<intent-filter></intent-filter>标签中,只能有一个action标签,可以有多个category标签
<category android:name="android.intent.category.DEFAULT" />这句作用是:如果有隐式意图请求时,这句能保证activity能正确匹配
如果没这句,隐式意图申请时,会报 ActivityNotFoundException异常
<activity
android:name="mstar.factorymenu.ui.MainActivity"
android:label="@string/app_name"
android:launchMode="singleInstance" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<action android:name="android.intent.action.MAIN" />决定应用程序最先启动的Activity ,
<category android:name="android.intent.category.LAUNCHER" />:如果没有这句,则在应用列表中,不会显视这个apk