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

时间:2011-12-21 00:15:58

标签: android android-intent

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

格式类似于

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

我的代码正在关注

Intent i = new Intent("action name");
startActivity(i);

然而,我的apk与未捕获的ActivityNotFound异常崩溃,日志读取 找不到活动来处理意图......“

有什么想法吗?

Thanx很多。

3 个答案:

答案 0 :(得分:17)

查看Intent documentation,它说还请注意此处提供的DEFAULT类别:Context.startActivity方法在未明确指定其组件名称时解析您的活动是必需的。 / strong>如果活动的IntentFilter定义不包含该类别,则无法使用startActivity启动它。尝试使用setClassName方法,并将其传递给您尝试启动的包类和活动类。

答案 1 :(得分:14)

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

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

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

答案 2 :(得分:0)

您需要定义您在Manifest中启动的活动。确保您提供了与您要启动的其他apk中的活动相同的<intent-action(和活动名称)。

android: how do i open another app from my app?