admin管理员组文章数量:1558039
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,android 启动App的三种方式 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1727320009a1108219.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论