Как узнать, что мое приложение для 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
,