请参阅有关IntentFilters的文档:
要通过此测试,Intent对象中指定的操作必须与过滤器中列出的操作之一匹配。如果对象或过滤器未指定操作,则结果如下:
如果过滤器未能列出任何操作,则没有任何意图匹配,因此所有意图都无法通过测试。没有意图可以通过过滤器。
另一方面,没有指定操作的Intent对象会自动通过测试 - 只要过滤器包含至少一个操作。
在我的代码中,
Intent intent = new Intent();
startActivity(intent);
<activity
android:name=".MainActivity2"
android:label="@string/title_activity_main_activity2" >
<intent-filter>
<action android:name="fdsfds.hihi" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
为什么我的意图无法启动.MainActivity2?
答案 0 :(得分:0)
Intent intent = new Intent();
intent.setAction("fdsfds.hihi");
startActivity(intent);
答案 1 :(得分:0)
这可能为时已晚,无法得到答案。我降落在这里是因为我和你有着同样的怀疑。我想你和我一样犯了同样的错误。我将意图对象与意图过滤器混淆了。但仔细阅读文档后,我的疑问得到了解决。
因此,如果意图对象(您创建的意图反对意图)未指定任何操作,但 intent-filter (在清单文件中)列出至少一个操作,您的意图将通过 操作测试。 虽然它将通过其余的测试以进行意图匹配,但没有任何保证。
您尚未在过滤器中列出任何操作,因此所有操作测试都将失败(并且通过扩展,意图匹配将失败)。