1.关于action
Intent lIntent = new Intent();
lIntent.setAction("xulingyun");
lIntent.setAction("wangxue");
//Intent里的action的几个是IntentFilter里面的子集
<intent-filter>
<action android:name="xulingyun"/>
<action android:name="wangxue"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
一些系统常用的action,可以看这篇文章Android 外部启动activity,自定义action,action常量大全
2.关于category
Intent lIntent = new Intent();
lIntent.setAction("xulingyun");
lIntent.setAction("wangxue");
//这一行默认添加category //lIntent.addCategory("android.intent.category.DEFAULT");
//所以IntentFilter中必须添加
<category android:name="android.intent.category.DEFAULT"/>
//而且Intent 中的category和action一样,也是IntentFilter中的子集
CATEGORY_DEFAULT:Android系统中默认的执行方式,按照普通Activity的执行方式执行。
CATEGORY_HOME:设置该组件为Home Activity。
CATEGORY_PREFERENCE:设置该组件为Preference。
CATEGORY_LAUNCHER:设置该组件为在当前应用程序启动器中优先级最高的Activity,通常为入口ACTION_MAIN配合使用。
CATEGORY_BROWSABLE:设置该组件可以使用浏览器启动。
CATEGORY_GADGET:设置该组件可以内嵌到另外的Activity中。
3.关于data
data有两部分组成 URI 和mimeType,
URI 的格式如URI d的格式:scheme://host:port/[path|pathPrefix|pathPattern]
如:https://www.csdn.net:8080/boke
intenFilter中的data的端口不写,则intent中可以写任意端口
mimeType的种类很多,可以自行搜索
- 1.单独使用mimeType
//这样就可以调用到可以承载jpeg类型的activity
lIntent.setType("img/jepg");
- 2.使用setDataAndType
//最下面设置的setDataAndType 会覆盖上面dataandtype,所以现在也是可以找得到的
lIntent.setDataAndType(Uri.parse("http://wangxue:109"),"image/*"); lIntent.setDataAndType(Uri.parse("http://xulingyun:89"),"image/*");
<data android:scheme="http" android:host="xulingyun" android:port="89" android:mimeType="image/*"/>
//注意这样也会被最下面的覆盖
lIntent.setType("img/png")
lIntent.setData(Uri.parser("http://xulingyun:89"))
- 3.如果IntentFilter中设置了data,则要匹配该activity,这intent必须也去设置data
启动其他的app
Intent i = new Intent();
ComponentName cn = new ComponentName("com.thinkive.mobile.cgws.account", "com.thinkive.mobile.account.activitys.HomeActivity");
i.setComponent(cn);
startActivity(i);