使用操作启动活动,但没有类别

Jim*_*mmy 7 android android-intent

我正在尝试启动另一个apk中定义的活动,在其AndroidManifest.xml中,它定义了一个活动和一个动作,但没有定义类别.

格式就像

<activity name="...">
    <intent-filter>
        <action android:name="action name">
    <intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

我的代码如下

Intent i = new Intent("action name");
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

然而,我的apk崩溃与未捕获的ActivityNotFound异常,日志读取No Activity被发现处理意图......"

有什么想法吗?

非常感谢.

Fem*_*emi 18

查看Intent文档,它还说明了这里提供的DEFAULT类别:Context.startActivity当未明确指定其组件名称时,这是解析活动所必需的.如果活动的IntentFilter定义不包含该类别,则无法使用startActivity启动它.尝试使用setClassName方法,并将它传递给您尝试启动的包类和活动类.


Mar*_*ark 15

使用startActivity(...)时,不能有空类别.

添加默认类别,这将完成工作:

<intent-filter>
    <action android:name="action name" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)