Android根据Data匹配隐式Intent的实例
16lz
2021-01-23
在 AndroidManifest.xml中我们这样设置:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hebaijun.intenttest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".IntentTestActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".OtherActivity" android:label="Other Activity"> <intent-filter > <action android:name="com.hebaijun.intenttest.OTHER"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="test" android:host="www.google.com" android:port="80"/> <data android:scheme="test2"/> <data android:mimeType="text/*" /> </intent-filter> </activity> <activity android:name=".OtherActivity2" android:label="Other Activity 2"> <intent-filter > <action android:name="com.hebaijun.intenttest.OTHER"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> </application></manifest>
调用的代码是:
Intent intent = new Intent();intent.setAction("com.hebaijun.intenttest.OTHER");Uri data = Uri.parse("test://www.google.com:80");//intent.setData(data);intent.setDataAndType(data, "text/*");startActivity(intent);
- 如果设置了多个data,只要匹配一个就可以启动这个activity。
- 如果设置了<data android:scheme="test" android:host="www.google.com" android:port="80"/>,必须完全匹配Uri data = Uri.parse("test://www.google.com:80");才能启动。
- 如果<data android:scheme="test" android:host="www.google.com"/>,那么Uri data = Uri.parse("test://www.google.com:80"),Uri data = Uri.parse("test://www.google.com:88"),Uri data = Uri.parse("test://www.google.com")都可以匹配。
- 如果只设置了<data android:scheme="test"/>,那么Uri data = Uri.parse("test://")就可以匹配,后面也可以加其他参数。
- 如果设置了mimeType,那么必须使用intent.setDataAndType(data, "text/*");启动activity。
更多相关文章
- Android不常用代码(1)
- Android获取网页源代码
- android Activity 和 Service 之间 传参数
- android中执行线程的部分代码
- android 学习笔记有用代码片段(3)
- Android各代码层获取系统时间的方法
- Android开发 开启闪光灯 关键代码
- android 获取本应用详细系统参数
- [Android]android.os 源代码中的Looper,Handler,Message,Message