通过action和uri启动另一个应用的activity
起始页:
①Intent intent = new Intent("com.test.main", Uri.parse("xxx://com.test.main?action=111"));
startActivity(intent);
其中,第一个参数为action,"xxx"为scheme,"com.test.main"为host,action=111标示参数的key为“action”,值为111.
注意,action需要全部为小写
② Intent intent = new Intent();//不需要action也可以跳转
intent.setData(Uri.parse("xxx://com.test.main?action=111"));
startActivity(intent);
目标页:
被启动的activity在清单文件里的注册规则:
<activity android:name=".TargetActivity">
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />//一定要加这个category
<action android:name="com.test.main" /> //注意action需要为小写
<data
android:host="com.test.main"
android:scheme="xxx"></data>
</intent-filter>
</activity>
传值:
- Intent intent = getIntent();
- if (null != intent) {
- Uri uri = intent.getData();
- if (uri == null) {
- return;
- }
- String acionData = uri.getQueryParameter("action");
- TextView tv = (TextView)findViewById(R.id.qijian_test_tv);
- tv.append("\n传过来的action值为:" + acionData);
- }
android:exported 是Android中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性。
总体来说它的主要作用是:是否支持其它应用调用当前组件。
默认值:如果包含有intent-filter 默认值为true; 没有intent-filter默认值为false