Android-->最全的启动第三方APP,应用程序(按需启动,历史启动)

在很多地方都需要启动其他的程序, 调起第三方应用;

比如:桌面程序,必须的就是启动第三方应用了.

如果你很细心的话, 应该注意到一点: 在桌面程序中点击启动第三方应用, 如果程序还没启动过, 就会重新创建并启动, 但是...已经启动过的程序,则不会重新创建...为啥呢?

继续往下阅读:


第1种:
只需要第三方程序的包名就能启动. 超级简单,难就难在怎么获取包名!!!哈哈~

PackageManager packageManager = context.getPackageManager();
Intent intent= packageManager.getLaunchIntentForPackage(包名);

第2种:
通过类名启动.

Intent main = new Intent(context, 类名);
//如果当前的context没有任务栈,那么FLAG_ACTIVITY_NEW_TASK标志是必须加的, 否则会异常崩溃.
//比如,你使用广播的context启动Activity, 和 Application 中启动Activity, 这个标志就很重要.
main.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(main);

第3种: 在广播中,推荐使用这种启动方式.
隐式启动.

//ACTION_MAIN是隐藏启动的action, 你也可以自定义
Intent launcher = new Intent(Intent.ACTION_MAIN);
//CATEGORY_LAUNCHER有了这个,你的程序就会出现在桌面上
launcher.addCategory(Intent.CATEGORY_LAUNCHER);
//FLAG_ACTIVITY_RESET_TASK_IF_NEEDED 按需启动的关键,如果任务队列中已经存在,则重建程序
launcher.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_NEW_TASK);
launcher.setComponent(new ComponentName(context,类名));
context.startActivity(launcher);

至此: 文章就结束了,如有疑问: QQ群:274306954 欢迎您的加入.

你可能感兴趣的:(Android-->最全的启动第三方APP,应用程序(按需启动,历史启动))