启动app android,android 启动App的三种方式
App內(nèi)部啟動,這種方式常用于App自己重啟,主要通過獲取launcher intent啟動。
Intent intent = getBaseContext().getPackageManager()
.getLaunchIntentForPackage(getBaseContext().getPackageName());
startActivity(intent);
根據(jù)包名及l(fā)auncher activity的類名啟動,這種情況適用于知道包名及類名的情況,如一下代碼根據(jù)包名及l(fā)auncher activity類名啟動微信。需要注意的是,如果應(yīng)用沒安裝或者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();
}
隱式啟動,這種方式適用于不知道包名的情況,只需根據(jù)intent 的action即可啟動應(yīng)用,并且可以通過intent傳遞參數(shù),例如下面啟動短信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語句捕獲應(yīng)用未安裝或者處理對應(yīng)intent的activity不存在的異常。
總結(jié)
以上是生活随笔為你收集整理的启动app android,android 启动App的三种方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高级语言,汇编语言,机器语言的关系
- 下一篇: 解析稍微复杂一点的数据