在开发过程中有这么一个需求,就是广告界面需要一直在前台播放,处于后台的时候需要自动切到前台来。找了一个究极的解决方案,使用ActivityManager
ActivityManager mAm = (ActivityManager) getApplication().getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskList = mAm.getRunningTasks(100);
for (ActivityManager.RunningTaskInfo rti : taskList) {
//找到当前应用的task,并启动task的栈顶activity,达到程序切换到前台
if (rti.topActivity.getPackageName().equals(getApplication().getPackageName())) {
mAm.moveTaskToFront(rti.id, 0);
return;
}
}
按返回键切换到桌面,不调用ondestory,代码如下
Intent intent= new Intent(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent); // 点击返回键是相当于按下home键,不销毁此activity,会调用onstop 但不会调用ondestory
记录一下方便以后再次使用