我使用隐式方式启动Activity
。但是当它运行时,LogCat会显示can not find the Activity
。
这是我的<intent-filter>
声明:
<activity android:name=".GroupEditActivity">
<intent-filter>
<action android:name="android.intent.action.EDIT"></action>
<data mimeType="vnd.android.cursor.item/group"></data>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</activity>
以下是启动Activity
的代码:
Intent intent = new Intent(Intent.ACTION_EDIT);
intent.setType(Groups.CONTENT_ITEM_TYPE);
startActivity(intent);
参考说如果我将类型和操作设置为与Intent-filter
相同,那么我的Activity
可以启动。但是当我只在Intent
中设置操作时,它仍然可以启动Activity
Intent-filter
包含mimetype。所以我完全迷失了。
here是我在官方网站上找到的:
感谢
android.content.ActivityNotFoundException:找不到处理Intent的活动{act = android.intent.action.EDITtyp = vnd.android.cursor.item / group}
我可以肯定java和xml中的类型和操作是相同的。
我自己解决了这个问题。该错误是由<data mimeType
引起的。我忘了在这里添加android。因此,如果更改为<data android:mimeType
,那么一切正常。但为什么之前没有报告异常,mimeType也合法吗?
答案 0 :(得分:1)
您是否正在启动与主要活动分开的活动?在这种情况下,您需要调用该活动的名称。如果您尝试启动主要活动,则无需调用意图。
Intent intent = new Intent(this, MyOtherActivity.class);
startActivity(intent);