Как узнать, видно ли мое приложение для Android?

У меня есть таймер, который запускает уведомление, когда оно заканчивается. Но я хотел бы запускать уведомление с помощью notificationManager, только если приложение в настоящее время не отображается, и отображать alertDialog, если таймер завершается, когда приложение находится на переднем плане.

Я уже пробовал с этим:

ActivityManager actMngr = (ActivityManager) ValeoMobileApplication.getContext().getSystemService(Activity.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> runningAppProcesses = actMngr.getRunningAppProcesses();
Tools.log("TimerBroadcastReceiver", "onReceive", "All running processes are listed below :");
for (RunningAppProcessInfo pi : runningAppProcesses) {
    //Check pi.processName and do your stuff
    //also check pi importance - check if process is in foreground or background
    Tools.log("TimerBroadcastReceiver", "onReceive", pi.processName + " importance = "+pi.importance);
    if(pi.processName.equalsIgnoreCase("MY_APP_PROCESS_NAME")){
        if (pi.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
            isApplicationInForeground = true;
        }
    }
}

Но кажется, что не имеет значения, находится ли приложение на переднем плане или нет. Как это сделать?

18
задан Tunaki 5 March 2016 в 00:10
поделиться