gpt4 book ai didi

java - 找不到处理默认 Activity Intent 的 Activity

转载 作者:太空狗 更新时间:2023-10-29 15:59:31 27 4
gpt4 key购买 nike

当我尝试从另一个 Activity 使用启动默认 Activity 时,出现错误 No Activity found to handle Intent

Intent start = new Intent("com.name.name.MainActivity");
startActivity(start);
finish();

我猜这是因为在默认 Activity 的 AndroidManifest 中我有 android.intent.action.MAIN

  <intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

有没有办法在默认 Activity 完成之前从另一个 Activity 启动默认 Activity?

最佳答案

您正在尝试使用操作名称启动 Activity ..

注意:startActivity()总是添加 CATEGORY_DEFAULTIntent如果没有指定其他类别(这里你没有在你的 internt 中指定类别,所以它是默认的)。

因此,一个 <intent-filter>对于 <activity>总是需要 <category> , 是否 DEFAULT或其他东西(这里它需要默认,这就是为什么错误说没有找到处理默认 Activity 的 Intent 的 Activity )

LAUNCHER 类别表示此入口点应列在应用程序启动器中。

DEFAULT 类别对于 Context.startActivity() 是必需的未明确指定组件名称时解析 Activity 的方法。

尝试指定两个 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>

然后您可以使用操作名称启动 Activity :

Intent intent = new Intent("com.name.name.MainActivity");
startActivity(intent);

或者你可以简单地使用类名:

Intent intent = new Intent(context, MainActivity.class);
startActivity(intent);

关于java - 找不到处理默认 Activity Intent 的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41233716/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com