启动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不存在的异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值