android intent隱式意圖注意問題

在 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>
使用隱式意圖:
                                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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章