我有一个非常简单的应用程序(教科书中的一个例子),它由 2 个活动组成:第一个活动UsingIntentActivity
有一个按钮。单击此按钮时,它必须导致调用的第二个活动,该活动SecondActivity
将在屏幕上显示文本。
我可以使用startActivity(new Intent(this, SecondActivity.class));
但是,在我遇到此示例的教科书中,使用了相同方法的另一种形式:
startActivity(new Intent("net.dreamingpixel.SecondActivity"));
并在Manifest File
匹配的自定义意图中创建(据我了解):
<activity
android:name=".UsingIntentActivity"
android:label="@string/title_activity_using_intent" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".SecondActivity"
android:label="Second Activity" >
<intent-filter>
<action android:name="net.dreamingpixel.SecondActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
所以有一个意图过滤器,它的类别设置为DEFAULT
. 但是当我尝试像这样运行应用程序并单击UsingIntentActivity
应用程序的按钮时崩溃。在日志猫中,我可以看到以下消息:
FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute the method of the activity
然后它指向了我在本文开头写的 startActivity 方法的调用。
有没有人有类似的问题?我在某个地方犯了错误吗?
更新:我还注意到Manifest
在我打开第二个活动标签的那一行的文件中有一个警告。它说:导出的活动不需要许可
也许这个警告与我的问题有关..