- 切换指定进程到前台
public static void come2Foreground(Context context) {
if (!isRunningForeground(context)) {
// 获取ActivityManager
ActivityManager mAm = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
// 获得当前运行的task
List<ActivityManager.RunningTaskInfo> taskList = mAm.getRunningTasks(100);
for (ActivityManager.RunningTaskInfo rti : taskList) {
// 找到当前应用的task,并启动task的栈顶activity,达到程序切换到前台
if (rti.topActivity.getPackageName().equals(context.getPackageName())) {
mAm.moveTaskToFront(rti.id, 0);
break;
}
}
}
}
2.监听应用是否处于后台
ProcessLifecycleOwner.get().getLifecycle().addObserver(new LifecycleObserver() {
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onAppBackgrounded() {
//App in background
LogUtils.wTag("fuck", "ON_STOP event background");
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onAppForegrounded() {
// App in foreground
LogUtils.wTag("fuck", "ON_START event foreground");
}
});
网友评论