我有一个服务正在监听来自服务器的一些事件。 服务具有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