android隐式意图调用应用程序组件
我试图测试如何使用隐式意图来调用同一应用程序中的组件(我使用的是Android 4.4) 我有一个主要活动和一个活动2。在AndroidManifest.xml中android隐式意图调用应用程序组件,android,android-intent,Android,Android Intent,我试图测试如何使用隐式意图来调用同一应用程序中的组件(我使用的是Android 4.4) 我有一个主要活动和一个活动2。在AndroidManifest.xml中 <activity android:name="com.android.intenttest.Activity2" android:label="@string/title_activity_activity2" > <intent-filter>
<activity
android:name="com.android.intenttest.Activity2"
android:label="@string/title_activity_activity2" >
<intent-filter>
<action android:name="com.android.intesttest.Activity2Action"/>
</intent-filter>
</activity>
它无法调用Activity2(我可以看到Toast)。有人能指出我做错了什么吗
谢谢
编辑:
我稍微修改了场景,无法解释我观察到的情况。我有两个应用程序:应用程序1和应用程序2
应用程序1有:
- 活动2:使用操作“com.android.intettest.testAction”和类别默认值的意图过滤器
- 活动3:无意图过滤器
- 活动2:使用操作“com.android.intettest.testAction”和类别默认值的意图过滤器
Intent intentObj = new Intent();
intentObj.setAction("com.android.intesttest.testAction");
if(intentObj.resolveActivity(getPackageManager()) != null){
startActivity(intentObj);
}
else{
Toast.makeText(getApplicationContext(), "No matching activity found", Toast.LENGTH_SHORT).show();
}
我希望弹出一个选择器对话框,要求在应用程序1的Activity2和应用程序2的Activity2之间进行选择
但它总是显示App2中的Activity2。有人能解释一下原因吗
谢谢。对于问题的第一部分,意向过滤器需要如下所示:
<activity
android:name="com.android.intenttest.Activity2"
android:label="@string/title_activity_activity2" >
<intent-filter>
<action android:name="com.android.intesttest.Activity2Action"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity
android:name="com.android.intenttest.Activity2"
android:label="@string/title_activity_activity2" >
<intent-filter>
<action android:name="com.android.intesttest.Activity2Action"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
In order to receive implicit intents, you must include the CATEGORY_DEFAULT
category in the intent filter. The methods startActivity() and
startActivityForResult() treat all intents as if they declared the
CATEGORY_DEFAULT category. If you do not declare this category in your intent
filter, no implicit intents will resolve to your activity.