无法使用仅指定操作的隐式意图启动活动

时间:2010-03-05 07:37:08

标签: android

我试图通过仅从其他应用程序中的活动指定其int​​ent过滤器中定义的动作(自定义)来启动活动。要启动的活动是其应用程序的主要活动,因此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>

1 个答案:

答案 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")
相关问题