本代码用来判断用户是否离开app。基本思想是:通过判断获取堆栈信息中栈顶的Activity
首先添加用户权限:
<uses-permission android:name="android.permission.GET_TASKS"/>
主代码:
public boolean isAppOnForeground() {
mPackageName=getPackageName();
mActivityManager=(ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
@SuppressWarnings("deprecation")
List<RunningTaskInfo> tasksInfo = mActivityManager.getRunningTasks(1);
if (tasksInfo.size() > 0) {
System.out.println("top Activity = "
+ tasksInfo.get(0).topActivity.getPackageName());
// 应用程序位于堆栈的顶层
if (mPackageName.equals(tasksInfo.get(0).topActivity
.getPackageName())) {
return true;
}
}
return false;
}