简体   繁体   中英

How to save app on back button press

How can I store the state of my app when back button is pressed.

When back button is pressed only onPause() is called but not onSaveInstanceState where we can store our data in outState bundle.

One answer may be sharedPreference but my problem is it will store only int and not intArray as bundles does.

Is there any way to explicitly call onSaveInstanceState ?

user 600027... Even if you were able to call onSaveInstanceState the bundle would not be persisted and I do not believe it would be available after a hard kill. You could write a method to convert an array of ints to set of strings and then persist the data by calling putStringSet() and then write a method to covert a set of strings to an array of ints.

JAL

You can do normal saving in Activity#onDestroy() .

I think the intention behind onCreate(Bundle) , onSaveInstanceState(Bundle) and onRestoreInstanceState(Bundle) is to provide for a chance for you to save state before being killed in the background. The app should then recover and appear to the user as if nothing happened.

On a back button press the user is in some sense "finished" with the activity. The amount of data that should be saved is different. Yes, it would be a good idea to save your state in SharedPreferences in this case.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM