我想确定我的应用程序是在设备的前台还是后台。在我的应用程序中,当我在设备上收到推送通知时,我需要确定 1. 应用程序是在后台还是前台?2. 应用程序当前/上次打开的活动是什么。
还有一件事,我还想找出应用程序设置的“显示通知”复选框的复选框值(选中/未选中)(通过设置->应用程序管理器->从列表中选择我的应用程序找到它)。根据此复选框的值,不同的代码将在我的应用程序中执行。
感谢您的帮助,
感谢您。
我想确定我的应用程序是在设备的前台还是后台。在我的应用程序中,当我在设备上收到推送通知时,我需要确定 1. 应用程序是在后台还是前台?2. 应用程序当前/上次打开的活动是什么。
还有一件事,我还想找出应用程序设置的“显示通知”复选框的复选框值(选中/未选中)(通过设置->应用程序管理器->从列表中选择我的应用程序找到它)。根据此复选框的值,不同的代码将在我的应用程序中执行。
感谢您的帮助,
感谢您。
您可以使用 onwindowFocusChanged() 方法来确定您的窗口(活动)是获得(前景)还是失去(背景)焦点。这是功能:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
// TODO Auto-generated method stub
super.onWindowFocusChanged(hasFocus);
//write your code here
}
您可以将此添加到您的活动中
公共布尔 IsAppForeground(上下文上下文){
ActivityManager activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE); 列出 appProcesses = activityManager.getRunningAppProcesses(); if (appProcesses == null){ return false; } 最终字符串 packageName = context.getPackageName(); for (RunningAppProcessInfo appProcess : appProcesses) { if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND && appProcess.processName.equals(packageName)) { return true; } }返回假;}