Проверка по коду, является ли приложение Android передним или фоновым на устройстве

Я хочу определить, находится ли мое приложение на переднем плане или в фоновом режиме на устройстве. В моем приложении, когда я получаю push-уведомление на устройстве, мне требуется определить, 1. находится ли приложение в фоновом или переднем плане? 2. Какая/была текущая/последняя открытая активность приложения.

и еще кое-что, я также хочу узнать значение флажка (отмечено/снято) флажка «показывать уведомления» в настройках приложения (найдите его, выбрав settings- > диспетчер приложений-> выберите мое приложение из списка). В зависимости от значения этого флажка в моем приложении будет выполняться другой код.

Ваша помощь приветствуется,

Благодарю вас.


person Sangam_cs    schedule 06.03.2014    source источник


Ответы (2)


Вы можете использовать метод onwindowFocusChanged(), чтобы определить, получило ли ваше окно (активность) (передний план) или потеряло (фон) фокус. Это функция:

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

//write your code here

}

Вы можете добавить это в свою деятельность

person Sushil    schedule 06.03.2014

общественное логическое значение IsAppForeground (контекстный контекст) {

ActivityManager ActivityManager = (ActivityManager) context.getSystemService (Context.ACTIVITY_SERVICE); List appProcesses = activityManager.getRunningAppProcesses(); если (appProcesses == null){ вернуть ложь; } final String packageName = context.getPackageName(); for (RunningAppProcessInfo appProcess: appProcesses) { if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND && appProcess.processName.equals(packageName)) { return true; } } вернуть ложь; }

person Lalit kumar    schedule 29.10.2015