Android:不调用finish()返回到上一个活动

Android:不调用finish()返回到上一个活动,android,Android,我有一个android应用程序,有很多活动,比如一本书,其中的每个页面都是一个新的活动。用户可以在每个活动中进行更改,例如使用不同颜色的标记突出显示某些文本等。只要应用程序保持活动状态,我就会记住这些信息,这一点至关重要(如果应用程序不活动,我不想/不需要记住这些信息)。据我所知,存储此类信息的最佳机制是通过onSaveInstanceState(Bundle outState)和onCreate(Bundle)/onRestoreInstanceState(Bundle)而不是首选项机制。我唯

我有一个android应用程序,有很多活动,比如一本书,其中的每个页面都是一个新的活动。用户可以在每个活动中进行更改,例如使用不同颜色的标记突出显示某些文本等。只要应用程序保持活动状态,我就会记住这些信息,这一点至关重要(如果应用程序不活动,我不想/不需要记住这些信息)。据我所知,存储此类信息的最佳机制是通过
onSaveInstanceState(Bundle outState)
onCreate(Bundle)
/
onRestoreInstanceState(Bundle)
而不是首选项机制。我唯一的问题是,用户可以向后导航到以前的页面(活动),而我知道实现这一点的唯一方法是调用
finish()
,这当然会杀死当前活动,而无需调用
onSaveInstanceState(Bundle outState)
,即使它确实调用了它,下次我启动一个表示该页面的活动时,它将是一个全新的实例。所以我的问题是:有没有一种方法可以不调用
finish()
而返回到上一个活动?或者,是否有更好的方法保存此信息?也许是通过静态变量

谢谢

附言。
我知道我也可以用不同的方式实现我的应用程序,这样不是每个页面都有自己的活动,但这并不是我想要的答案。

我遇到了完全相同的问题,在我反复思考和尝试之后,我找到了最可行的解决方案。我继承了该活动,并添加了一个静态方法,以在仅存在时终止它。因此,不要在活动退出时终止它。每当它再次被召唤时,我就杀了它。比如说,

MyActivity.killIfExists();
startActivity(new Intent(this, MyActivity.class));
因此,应用程序将始终为单例,并使用onSaveInstanceState保存其状态。

尝试使用startActivity()和Intent.FLAG\u ACTIVITY\u CLEAR\u TOP等标志。 你可以在这里阅读完整的故事: )