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

Я пытаюсь написать какой-то код, чтобы получить SMS, и когда SMS приходят со специального номера, что-то делают. Я определяю приемник для своего приложения, затем я использовал приведенный ниже код, чтобы определить, запущено ли приложение, в противном случае показывать уведомление.

ActivityManager activityManager = (ActivityManager) context.getSystemService(Activity.ACTIVITY_SERVICE);
        List<RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
        for(int i = 0; i < procInfos.size(); i++){
            if(procInfos.get(i).processName.equals(app)){
                // set running
                appState.isRunning = true;
                break;
            }
        }

Я тестирую этот код с помощью эмулятора, и он всегда возвращает true. Я отслеживаю свое приложение в DDMS и выясняю, когда я отправляю SMS, приложение запускается, но без интерфейса.

Как я могу это сделать? Пилс помощь

1 ответ

Решение

Ваше приложение автоматически создается до того, как его приемник сможет работать (где он будет работать в противном случае?).

Если вы хотите проверить, есть ли какая-либо активность в вашем приложении, API для этого не существует, но вы можете просто увеличить счетчик в onCreate и снизился в onDestroy,

Другие вопросы по тегам