2

我想确定我的应用程序是在设备的前台还是后台。在我的应用程序中,当我在设备上收到推送通知时,我需要确定 1. 应用程序是在后台还是前台?2. 应用程序当前/上次打开的活动是什么。

还有一件事,我还想找出应用程序设置的“显示通知”复选框的复选框值(选中/未选中)(通过设置->应用程序管理器->从列表中选择我的应用程序找到它)。根据此复选框的值,不同的代码将在我的应用程序中执行。

感谢您的帮助,

感谢您。

4

2 回答 2

1

您可以使用 onwindowFocusChanged() 方法来确定您的窗口(活动)是获得(前景)还是失去(背景)焦点。这是功能:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    // TODO Auto-generated method stub
    super.onWindowFocusChanged(hasFocus);

//write your code here

}

您可以将此添加到您的活动中

于 2014-03-06T04:53:25.187 回答
0

公共布尔 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; } }返回假;}

于 2015-10-29T07:46:25.897 回答