如何在后退按钮上按下应用程序
问题描述:
如何在按下后退按钮时存储我的应用程序的状态。如何在后退按钮上按下应用程序
仅当按下后退按钮时onPause()
被调用,但不是onSaveInstanceState
我们可以将数据存储在outState包中。
一个答案可能是sharedPreference
但我的问题是它将只存储int而不是intArray
作为捆绑。
有什么方法可以明确地致电onSaveInstanceState
?
答
user 600027 ...即使你能够调用onSaveInstanceState,捆绑包也不会被保存,我不相信它会在硬性杀死后可用。您可以编写一个方法将int数组转换为字符串集,然后通过调用putStringSet()来持久保存数据,然后编写一个方法将一组字符串转换为int数组。
JAL
答
您可以在Activity#onDestroy()
中进行正常保存。
我认为onCreate(Bundle)
,onSaveInstanceState(Bundle)
和onRestoreInstanceState(Bundle)
背后的意图是为您提供一个机会,让您在后台死亡之前保存状态。然后,应用程序应该恢复,并显示给用户,就好像什么都没有发生。
在后退按钮上按下用户在某种意义上与活动“完成”。应该保存的数据量是不同的。是的,在这种情况下,在SharedPreferences
中保存你的状态是个好主意。