android - 无法使用仅指定操作的隐式 Intent 启动 Activity

标签 android

我正在尝试通过仅指定其在其他应用程序中的 Activity 的 Intent 过滤器中定义的操作(自定义)来启动 Activity 。要启动的 Activity 是其应用程序的主要 Activity ,因此将 android.intent.action.MAINandroid.intent.category.LAUNCHER 设置为其操作和类别 Intent 过滤器。现在根据关于 Intent 和 Intent Filter 的 android 文档,在这种情况下我根本不需要指定 DEFAULT 类别。但是我无法启动该 Activity 。

LogCat 说,找不到 Activity...

我是不是误解了文本,还是缺少其他内容...?

代码,用于调用 Activity

Intent i=new Intent();
i.setAction("android.AddressBookV4.firstActivity");
startActivity(i);

list 文件中调用的Activity的定义

<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>

最佳答案

您需要添加 LAUNCHER类别到您的 Intent , 自 <intent-filter>说它匹配以下 Intent (伪代码):

((action IS "android.AddressBookV4.firstActivity")
    OR (action IS "android.intent.action.MAIN"))
  AND (category IS "android.intent.category.LAUNCHER")

关于android - 无法使用仅指定操作的隐式 Intent 启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2385219/

相关文章:

java - Android 共享图像不会清除以前共享项目的预览

android - 在 ConstraintLayout 中等距分布 View

android - 在 Xamarin Forms 项目中以编程方式关闭 Android 应用程序

java - admob 测试广告出现

java - 输入过滤器 - 两位小数的正则表达式

android - onCreate 启动两次,没有任何 UI 更改

android - 用于与 TI sensortag 配对的默认引脚是什么?

java - 使用 array 或 arrayList 动态添加 Circles

Android ImageView 的 Widget 动画

Android:如何配置 RelativeLayout 以填充整个高度