我有一个显示不同屏幕的活动A.我选择使用setContentView
在同一活动中显示多个观看次数。
启动应用程序时,活动A显示默认屏幕。然后,您可以选择一个选项,该活动通过将setContentView设置为另一个视图来显示另一组选项。此新视图现在会在您单击它时将您带到一个新活动(活动B),活动A会调用finish()
如果我现在结束活动B,通过在其上调用finish()
,我将被收回活动A,并将其称为onCreate()
。我无法弄清楚这里有什么问题。当活动B从未调用活动A的意图时,为什么活动会重新创建?
view.findViewById(R.id.quit).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
答案 0 :(得分:0)
问题很可能是因为onCreate()
的目的是创建活动状态,就像它离开时一样。在任何情况下,您都不能假设Activity
将在用户离开后保持其状态。视图是内存密集型的,系统会在需要更多内存用于当前热门活动时立即转储它。如果发生这种情况,系统必须在系统转储它之前将Activity
重新创建为其原始状态。
您可以通过onSaveInstanceState(Bundle)
方法保存状态。传入onCreate
的捆绑包与您在onSaveInstanceState()
中设置的捆绑包相同,因此所有参数都在那里。然后你可以像现在一样重建。