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