У меня есть служба, которая прослушивает некоторые события с сервера. Служба имеет флаг START_STICKY, который заставляет его перезапускаться, когда он был убит ОС. Когда услуга получает событие, у меня есть два сценария. Во-первых, если активность не убита, мне нужно отправить результат локальному широковещательному приемнику и обновить интерфейс. Во-вторых, если он был убит ОС, я хочу его воссоздать и отправить данные в комплекте.Android: проверьте, не уничтожена ли система системой из службы
Но я не знаю, как распознать, что андроид убил мою деятельность. onDestroy мероприятие мероприятие не приходит в этой ситуации.
@Override
public void onComplete(CurrentOrdersResponse response) {
if (response == null) {
return;
}
boolean isActivityDestroyed = mPreferences.getBoolean(MainActivity.IS_MAIN_ACTIVITY_DESTROYED_PREF_KEY, false);
if (!isActivityDestroyed)
sendResult(response.getResJSONStr(), CURRENT_ORDERS_ACTION);
else {
Intent intent = new Intent(this, MainActivity.class);
intent.setAction(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtras(extras);
startActivity(intent);
}
int resCode = response.getResCode();
Log.i(LOG_TAG, "Service resCode" + " " + resCode);
}
Недостаточно ли вам знать, видно ли это или нет? Если это так, http://stackoverflow.com/a/5446680/3209739 недостаточно? – cgr
Нет. Этого недостаточно. Мне нужно обновить свой интерфейс, даже если он находится в фоновом режиме (остановлен и приостановлен). –
Затем вы также должны проверить, доступен ли он в фоновом стеке, который не отображается. Если он находится в стеке, они обновляются там. – cgr