···
先说说 moveTaskToBack()方法:
在activity中调用 moveTaskToBack(boolean nonRoot)方法即可将activity 退到后台,注意不是finish()退出。
false -----> 只有当前activity是task根,指应用启动的第一个activity时,才有效;
true ------> 则忽略这个限制,任何activity都可以有效。
moveTaskToBack可以将Activity切换到后台,那又如何将Activity恢复到前台呢?
说说应用场景吧,在播放器用有小窗口播放的需求,点击 小窗按钮,播放器切换到桌面进行小窗播放,
那既然能小了,那么肯定就能大?也就是恢复到小窗口切换前的状态。
问题就来了,这该怎么做呢?
@TargetApi(11)
protected void moveToFront() {
if (Build.VERSION.SDK_INT >= 11) { // honeycomb
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> recentTasks = manager.getRunningTasks(Integer.MAX_VALUE);
for (int i = 0; i < recentTasks.size(); i++){
Log.e("xk", " "+recentTasks.get(i).baseActivity.toShortString() + " ID: "+recentTasks.get(i).id+"");
Log.e("xk","@@@@ "+recentTasks.get(i).baseActivity.toShortString());
// bring to front
if (recentTasks.get(i).baseActivity.toShortString().indexOf("包名/根Activity完全限定名") > -1) {
manager.moveTaskToFront(recentTasks.get(i).id, ActivityManager.MOVE_TASK_WITH_HOME);
}
}
}
}
···
网友评论