【Android(安卓)开发教程】保存状态等信息
16lz
2021-01-24
本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。
原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/目前为止,我们已经了解到了,当改变屏幕方向的时候,activity将会被销毁,随后被重建。请记住一点,当activity被重建之后,它的当前信息可能消失。当一个activity被kill掉,将会调以下方法中的一个或着两个:
- onPause() —— 当一个activity被kill掉或被转入后台的时候,这个方法总是被调用。
- onSaveInstanceState() —— 当一个activity将被kill掉或转入后台的时候,这个方法也会被掉用,就像onPause()方法一样。但是,当一个activity从调用栈中清除的时候(例如按返回键的时候),这个方法不会被调用(注:onPause()方法会被调用),因为已经没有必要保存它的状态了。
- @Override
- publicvoidonSaveInstanceState(BundleoutState){
- //---savewhateveryouneedtopersist---
- outState.putString("ID","1234567890");
- super.onSaveInstanceState(outState);
- }
[java] view plain copy
- @Override
- publicvoidonRestoreInstanceState(BundlesavedInstanceState){
- super.onRestoreInstanceState(savedInstanceState);
- //---retrievetheinformationpersistedearlier---
- StringID=savedInstanceState.getString("ID");
- }
- @Override
- publicObjectonRetainNonConfigurationInstance(){
- //---savewhateveryouwanthere;ittakesinanObjecttype---
- return("Sometexttopreserve");
- }
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Log.d("StateInfo","onCreate");
- Stringstr=(String)getLastNonConfigurationInstance();
- }
例如,当用户下载数据的同时改变了屏幕方法,使用这两个方法去保存数据,总好过重新下载数据吧。
更多相关文章
- Android(安卓)4.4以上使用HttpURLConnection底层使用OkHttp实现
- Android——Jni使用总结
- android夜间模式的实现
- OkHttpClientManager使用
- Android(java)学习笔记125:Clock app编写报错02
- android线程间通信和主线程更新ui
- Android中对TextView中的部分内容的字体样式的设置方法
- [Android(安卓)Pro] android 混淆文件project.properties和progu
- Android下的JNI创建多线程的方法