启动app android,android 启动App的三种方式

App内部启动,这种方式常用于App自己重启,主要通过获取launcher intent启动。

Intent intent = getBaseContext().getPackageManager()

.getLaunchIntentForPackage(getBaseContext().getPackageName());

startActivity(intent);

根据包名及launcher activity的类名启动,这种情况适用于知道包名及类名的情况,如一下代码根据包名及launcher activity类名启动微信。需要注意的是,如果应用没安装或者activity类名错误这种方法将抛出异常,因此需要使用try catch语句捕获异常。

try {

Intent intent = new Intent();

ComponentName cmp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.LauncherUI");

intent.setAction(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_LAUNCHER);

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

intent.setComponent(cmp);

mContext.startActivity(intent);

} catch (ActivityNotFoundException e) {

Toast.makeText(mContext,"您尚未安装微信,请先安装微信!").show();

}

隐式启动,这种方式适用于不知道包名的情况,只需根据intent 的action即可启动应用,并且可以通过intent传递参数,例如下面启动短信app的示例:

try {

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setType("vnd.android-dir/mms-sms");

intent.putExtra("sms_body", contnt);

mContext.startActivity(intent);

} catch (ActivityNotFoundException e) {

Toast.makeText(mContext, 您尚未安装短信App,请先安装短信App!, Toast.LENGTH_SHORT).show();

}

这种方式同样需要使用try catch语句捕获应用未安装或者处理对应intent的activity不存在的异常。

你可能感兴趣的:(启动app,android)