android根据packagename激活后台程序到前台/打开程序(与在luancher中点击应用图标效果相同)
2015-09-11 09:19
489 查看
废话不说,留着自己以后查找方便,要实现在lunancher中的点击效果,(程序后台就激活到前台,而不是启动某一个activity新实例)
关键是设置intent的flag,
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
| Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
//这东西虽然没啥技术含量可是时间久了,记不住(也没必要记)在这记录一下用到回来查
启动或者激活后台正在运行的 程序
判断当前应用程序处于前台还是后台/没运行
以上代码来自网络整理
关键是设置intent的flag,
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
| Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
//这东西虽然没啥技术含量可是时间久了,记不住(也没必要记)在这记录一下用到回来查
启动或者激活后台正在运行的 程序
private void RunApp(Context context,String packageName) { Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName); ActivityManager manager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> task_info = manager .getRunningTasks(20); String className = ""; for (int i = 0; i < task_info.size(); i++) { if (packageName.equals(task_info.get(i).topActivity.getPackageName())) { className = task_info.get(i).topActivity .getClassName(); //这里是指从后台返回到前台 前两个的是关键 intent.setAction(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_LAUNCHER); try { intent.setComponent(new ComponentName( context, Class.forName(className))); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }// intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); context.startActivity(intent); return ; } } Intent intent2 = context.getPackageManager().getLaunchIntentForPackage(packageName); context.startActivity(intent2); }
判断当前应用程序处于前台还是后台/没运行
/** * 判断当前应用程序处于前台还是后台 * @param context * @return 程序没有运行或者在后台运行 true,程序在前台运行返回false */ public static boolean isApplicationBroughtToBackground(final Context context) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> tasks = am.getRunningTasks(1); if (!tasks.isEmpty()) { ComponentName topActivity = tasks.get(0).topActivity; if (!topActivity.getPackageName().equals(context.getPackageName())) { return true; } } return false; }
以上代码来自网络整理
相关文章推荐
- 编写高性能的Lua代码
- Lua数组合并的简单问题
- Lua3
- lua math 库
- Lua2
- uLua bug fix
- C/C++代码里面读取Lua的Table
- Lua中的loadfile、dofile、require详解
- Lua程序设计:第6章 深入函数
- Lua程序设计:第5章 函数
- Lua查找表元素过程(元表、__index方法是如何工作的)
- Lua脚本之语法基础快速入门
- Luajit-2.1.0-beta1的发布和生成arm64用bytecode的解脱
- Lua5.0 非正式总结
- Lua安装
- LeetCode Evaluate Reverse Polish Notation
- Lua:模块、使用位操作BitOp、C API(Lua与C互相调用)
- FreeMarker template error: The following has evaluated to null or missing
- Lua开发环境搭建
- Lua5.0 示例程序抽样