我还在学习Android开发的细节。我正在玩Notepad教程应用程序试图获得不同的行为。
现在,我希望应用程序在NoteEdit活动中执行以下操作:
1)如果按下后退按钮,则忽略当前状态;基本上,它就像一个隐式取消,你被带回到列表中。
2)如果按下主页按钮,它将正常进入主页。但是,如果再次打开应用程序,它应该以与您离开时相同的状态返回到NoteEdit活动(例如,如果您在编辑的中途,则为IE)。
我从onPause中删除了“saveState”内容,因为我不想存储到DB,除非按下“确认”(相反,我将调用saveState移动到确认按钮)。通过这样做,点击“返回”基本上会抛出你的变化,这就是我想要的。然而,回家并回来也会抛出你的变化,尽管它仍然存在于NoteEdit活动中。 “Back”和“Home”都会触发onPause消息,并且两者都会导致onResume触发(无论是单击“Back”情况中的项目,还是通过返回“Home”情况下的应用程序)。
有没有办法让这两个事件处理以不同方式保存状态?是否可以让Home按钮存储状态(暂时),而没有Back按钮可以存储状态?
提前致谢!
答案 0 :(得分:1)
您需要定义onSaveInstanceState方法,但不是保存到DB(如记事本示例中所示),而是将Activity的状态保存到Bundle。然后,当传入的Bundle非空时,您需要从onCreate中的已保存状态恢复。