Android自定义意图无法启动活动(是的,我包括默认类别)

Android自定义意图无法启动活动(是的,我包括默认类别),android,android-activity,android-intent,Android,Android Activity,Android Intent,我搜索了又搜索,似乎找不到这个关于定制意图的特定问题的答案 我有一个包含4个活动的应用程序,1个是设置内容的主应用程序,另外3个代表我向用户展示的不同屏幕。我正在尝试使用自定义意图来启动不同的活动 以下是我的AndroidManifext.xml: <?xml version="1.0" encoding="utf-8"?> 当然,我之所以在这里,是因为上面所说的永远找不到符合目的的活动。错误消息正确地说明了操作和类别,除非我错了,否则上面的清单会正确地创建意图过滤器 在网上搜索,

我搜索了又搜索,似乎找不到这个关于定制意图的特定问题的答案

我有一个包含4个活动的应用程序,1个是设置内容的主应用程序,另外3个代表我向用户展示的不同屏幕。我正在尝试使用自定义意图来启动不同的活动

以下是我的AndroidManifext.xml:

<?xml version="1.0" encoding="utf-8"?>
当然,我之所以在这里,是因为上面所说的永远找不到符合目的的活动。错误消息正确地说明了操作和类别,除非我错了,否则上面的清单会正确地创建意图过滤器

在网上搜索,我似乎总是能找到同样使用数据的例子。我胡乱添加数据只是为了看看是否有必要,但这似乎并不重要

稍微不同的是,除了意图之外,我是否应该以不同的方式控制我的程序流?我之所以有两个动作,是因为一个切换视图,而另一个只是刷新数据,这样当用户稍后切换到屏幕时,他们不会看到它快速刷新数据,而只是刷新新内容

我知道我可以使用显式意图,但因为我想有不同的动作,我想让隐式意图更有效

我很怀疑这一点。大多数情况下,当您希望自己的应用程序以外的东西启动组件(例如,第三方应用程序)时,您会使用

此外,我怀疑您是否希望在所有这些设备上安装android:launchMode=“singleTop”。我非常确定,您不希望在最后一个版本中使用
android:permission=“android.permission.ACCESS\u CHECKIN\u PROPERTIES”
,因为您很可能无法启动自己的活动

错误消息正确地说明了操作和类别,除非我错了,否则上面的清单会正确地创建意图过滤器

我从未见过Android应用程序将字符串资源用于
元素。也许这是造成你困难的原因。此外,由于
元素对您没有任何好处(除了您的
启动器
一个),我不清楚您为什么将它们放在那里

我建议您删除
元素并使用显式
意图

我知道我可以使用显式意图,但因为我想有不同的动作,我想让隐式意图更有效

我很怀疑这一点。大多数情况下,当您希望自己的应用程序以外的东西启动组件(例如,第三方应用程序)时,您会使用

此外,我怀疑您是否希望在所有这些设备上安装android:launchMode=“singleTop”
。我非常确定,您不希望在最后一个版本中使用
android:permission=“android.permission.ACCESS\u CHECKIN\u PROPERTIES”
,因为您很可能无法启动自己的活动

错误消息正确地说明了操作和类别,除非我错了,否则上面的清单会正确地创建意图过滤器

我从未见过Android应用程序将字符串资源用于
元素。也许这是造成你困难的原因。此外,由于
元素对您没有任何好处(除了您的
启动器
一个),我不清楚您为什么将它们放在那里


我建议您只需删除
元素并使用显式
意图

不要使用资源字符串进行意图操作,而是使用
android.intent.action.VIEW
不要使用资源字符串进行意图操作,而是使用
android.intent.action.VIEW

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Activities.REDB_main" android:label="@string/app_name"
        android:launchMode="singleTop">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Activities.ChooseCards" android:launchMode="singleTop">
        <intent-filter>
            <action android:name="@string/ACTION_VIEW" />
            <action android:name="@string/ACTION_REFRESH" />
            <category android:name="@string/CATEGORY_SHUFFLE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity android:name=".Activities.SelectSets" android:launchMode="singleTop">
        <intent-filter>
            <action android:name="@string/ACTION_VIEW" />
            <action android:name="@string/ACTION_REFRESH" />
            <category android:name="@string/CATEGORY_SELECT_SETS" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity android:name=".Activities.SelectCards" android:launchMode="singleTop"
        android:permission="android.permission.ACCESS_CHECKIN_PROPERTIES">
        <intent-filter>
            <action android:name="@string/ACTION_VIEW" />
            <action android:name="@string/ACTION_REFRESH" />
            <category android:name="@string/CATEGORY_SELECT_CARDS" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
</application>
 Intent intent = new Intent().setAction(getString(R.string.ACTION_VIEW));
 intent.addCategory(getString(R.string.CATEGORY_SHUFFLE));
 startActivity(intent);