[英]No Activity found to handle Intent for Default Activity
當我嘗試從另一個Activity啟動默認活動時,我收到錯誤No Activity found to handle Intent
Intent start = new Intent("com.name.name.MainActivity");
startActivity(start);
finish();
我想這是因為在AndroidManifest for Default Activity中我有android.intent.action.MAIN
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
有沒有辦法在默認活動完成之前從另一個Activity啟動默認活動?
您正嘗試使用操作名稱啟動活動。
注意 :如果沒有指定其他類別,則startActivity()
始終將CATEGORY_DEFAULT
添加到Intent
(此處您沒有在internt中指定類別,因此它的默認值)。
因此, <activity>
的<intent-filter>
總是需要<category>
,無論是DEFAULT
還是其他東西(這里需要默認值,這就是為什么錯誤說沒有找到活動來處理默認活動的Intent )
LAUNCHER類別表示此入口點應列在應用程序啟動器中。
Context.startActivity()
方法需要DEFAULT類別,以便在未明確指定其組件名稱時解析您的活動。
嘗試指定兩個intent過濾器:
<activity android:name=".MyActivity"
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateHidden"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.name.name.MainActivity"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
然后,您可以使用操作名稱啟動活動:
Intent intent = new Intent("com.name.name.MainActivity");
startActivity(intent);
或者只是你可以使用類名:
Intent intent = new Intent(context, MainActivity.class);
startActivity(intent);
Intent i = new Intent(otheractivity.this,MainActivity.class); startActivity(ⅰ);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.