android根据packagename激活后台程序到前台/打开程序(与在luancher中点击应用图标效果相同)
来源:互联网 发布:上海短租 知乎 编辑:程序博客网 时间:2024/05/19 18:37
废话不说,留着自己以后查找方便,要实现在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);
//这东西虽然没啥技术含量可是时间久了,记不住(也没必要记)在这记录一下用到回来查
启动或者激活后台正在运行的 程序
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 blocke.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; }
以上代码来自网络整理
0 0
- android根据packagename激活后台程序到前台/打开程序(与在luancher中点击应用图标效果相同)
- 后台程序与前台程序
- Android相关浅析之根据packageName获取应用图标,应用名称等信息
- 在Android Studio中修改包名?ApplicationId 与 PackageName
- android--实现通过点击链接打开apk(应用图标在桌面消失)
- android:正在运行的某个android程序中进行编写内容,按home键之后退回到桌面,在次点击程序图标避免再次重新启动程序解决办法
- ubuntu 前台程序和后台程序
- android点击Home键后,在打开应用,应用会重新启动,而不是恢复到原来状态
- android点击Home键后,在打开应用,应用会重新启动,而不是恢复到原来状态
- Android应用安装后打开,按Home键切出应用后再点击桌面图标返回导致应用重启问题及再次把app唤醒到前台
- linux前台与后台程序操作
- 前台代码中显示后台程序
- android程序按home键之后退回到桌面,然后在次点击程序图标会重新启动程序
- Android在界面中重复点击导致多次跳转或打开多个相同界面的问题的解决方式
- 关于Android App上线后从应用市场点击打开按钮进入应用后进行操作后,再点击home键到桌面后点击启动图标重新打开应用的解决方法
- App在Luancher上生成2个图标
- unigui前台用户如何在软件中点击一个按钮打开浏览器并打开地址?
- Android ApplicationId 与 PackageName
- GDAL对矢量文件删除操作后的问题
- 第二周 项目2 程序的多文件组织
- 第二周项目1语言中函数参数传递的三种方式
- 发布有礼!2015 Autodesk程序商店有奖发布活动拉开序幕
- serv-u使用WINDOWS AD域用户验证的尝试
- android根据packagename激活后台程序到前台/打开程序(与在luancher中点击应用图标效果相同)
- 第二周。程序的多文件组织
- 项目二——程序的多文件组织
- licode的ios最新版本的接入
- 第二周项目1函数参数传递的三种方式
- 第2周项目1-C/C++语言中函数参数传递的三种方式
- 博客地址
- 宏定义
- java 对日期函数的操作(Calendar的使用)