1、通过包名
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(packageName);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(LaunchIntent);
2、通过action
Intent intent = new Intent();
intent.setAction(action);
如果有参数map,则添加参数
//判断key,val为int,string,boolean类型,当然可以有更多其他类型。(因不确定后台会给返回什么类型)
if (map != null && map.size() > 0) {
Iterator iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
if (entry.getValue() instanceof Integer) {
String key = (String) entry.getKey();
int val = (int) entry.getValue();
intent.putExtra(key, val);
} else if (entry.getValue() instanceof String) {
String key = (String) entry.getKey();
String val = (String) entry.getValue();
intent.putExtra(key, val);
} else if (entry.getValue() instanceof Boolean) {
String key = (String) entry.getKey();
boolean val = (boolean) entry.getValue();
intent.putExtra(key, val);
}
}
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
3、通过url启动
首先拼接url参数。参数也是map。
public static String getUrl(String url, Map<String, String> map) {
//比如url=tenvideo2://?
//map是参数
if (map != null && map.size()>0){
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry<String, String> entry = (Map.Entry<String, String>) iter
.next();
url = url + entry.getKey() + "="
+ entry.getValue()
+ "&";
}
url = url.substring(0, url.length() - 1);
}
return url;
}
返回的url
然后通过url启动
Intent intent = new Intent();
intent.setData(Uri.parse(url));//url是上面返回的
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
如有不对请更正一下。