我试图通过仅从其他应用程序中的活动指定其intent过滤器中定义的动作(自定义)来启动活动。要启动的活动是其应用程序的主要活动,因此android.intent.action.MAIN
& android.intent.category.LAUNCHER
在其intent过滤器中设置为操作和类别。现在根据关于Intent和Intent Filter的android doc,在这种情况下我根本不需要指定DEFAULT
类别。但做同样的事情,我无法启动活动。
LogCat说,无法找到活动......
我是否误解了文字或者是否有其他遗漏......?
代码,用于调用活动
Intent i=new Intent();
i.setAction("android.AddressBookV4.firstActivity");
startActivity(i);
清单文件中调用的活动的定义
<activity android:name=".AddressBook"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.AddressBookV4.firstActivity" />
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 0 :(得分:1)
您需要将LAUNCHER
类别添加到Intent
,因为<intent-filter>
表示它与以下Intent(伪代码)匹配:
((action IS "android.AddressBookV4.firstActivity")
OR (action IS "android.intent.action.MAIN"))
AND (category IS "android.intent.category.LAUNCHER")