Android 程序后天调转到前台 (栈Task问题)

来源:互联网 发布:网络剧《余罪》 编辑:程序博客网 时间:2024/05/29 07:37

程序从后台吊起  代码


private void recovery(Context context) {    ActivityManager manager = (ActivityManager) context            .getSystemService(Context.ACTIVITY_SERVICE);    List<ActivityManager.RunningTaskInfo> task_info = manager            .getRunningTasks(20);    String className = "";    for (int i = 0; i < task_info.size(); i++) {        if ("packgeName".equals(task_info                .get(i).topActivity.getPackageName())) {            manager.moveTaskToFront(task_info.get(i).id,ActivityManager.MOVE_TASK_WITH_HOME);//关键            className = task_info.get(i).topActivity .getClassName();            intentgo = new Intent();            intentgo.setAction(Intent.ACTION_MAIN);            intentgo.addCategory(Intent.CATEGORY_LAUNCHER);            try {                intentgo.setComponent(new ComponentName(context, Class.forName(className)));//            } catch (ClassNotFoundException e) {                e.printStackTrace();            }            intentgo.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT                    | Intent.FLAG_ACTIVITY_NEW_TASK                    | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);            context.startActivity(intentgo);        }    }}我遇到的问题:1.当你程序到 后台,然后执行程序是可以吊起的2.当你程序在后台,然后点击了其他应用也放在后台(最后点击的不是自己的程序时候), 有些手机,即使以上代码你标注了跳转的包名,类名不会吊起,吊起的是你最后一次打开,放到后台的程序。 然后跟了一下以上代码明明没有问题,执行下来的获取的className也是自己的类名,为什么不行呢? 结果发现,你程序的TASK 在最后打开应用的TASK 下边,所以打开的是最上层的TASK,最后用过
 manager.moveTaskToFront(task_info.get(i).id,ActivityManager.MOVE_TASK_WITH_HOME) 才可以。


0 0
原创粉丝点击