我有一個服務正在監聽來自服務器的一些事件。 服務具有START_STICKY標誌,使其在被操作系統殺死時可以重新啓動。 當服務收到一個事件我有兩種情況。 首先,如果活動沒有中止,我需要將結果發送到本地廣播接收器並更新UI。其次,如果它被操作系統殺死了,我想重新創建它併發送數據包。Android:檢查活動是否被系統從服務中銷燬
但我不知道如何識別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