我有一个通过意图调用第二个活动的活动。调用第二个Activity后,我想完成第一个活动。因此,我在onStop()
方法中有以下代码:
@Override
public void onStop() {
super.onStop();
if (shouldBeClosed) {
finish();
}
}
问题是我的第一个活动没有关闭。我不明白为什么?
也许我应该将此代码放入onPause()
?
但正如我在这种情况下所理解的那样,当活动松散焦点时(比如在调用对话框之后),我的活动可以被关闭
那么为什么会发生这种情况以及如何纠正这种行为的问题呢?
P.S。变量shouldBeClosed
为真。这不是重点。
修改
以下是第二项活动的召集:
Intent intent = new Intent(this, AcSpContextAssign.class);
Bundle extras = new Bundle();
extras.putInt(Constants.KEY_FROM_ACTIVITY, Constants.FROM_AcSpNameCreate);
extras.putLong(Constants.KEY_SPID, spId);
intent.putExtras(extras);
startActivity(intent);
答案 0 :(得分:2)
通常,您应该在发送意图后立即为第一个活动调用finish()。类似的东西:
...
startActivity(secondActivityIntent);
finish();
这将为您的第一个活动触发onPause() - > onStop() - > onDestroy()链,以便您可以在那里执行正常清理