onRetainNonConfigurationInstance和getLastNonConfigurationInstance
来源:互联网 发布:开淘宝店怎么设置运费 编辑:程序博客网 时间:2024/06/05 21:16
第一篇:
很多网友可能知道Android横竖屏切换时会触发onSaveInstanceState,而还原时会产生onRestoreInstanceState,但是Android的Activity类还有一个方法名为onRetainNonConfigurationInstance和getLastNonConfigurationInstance这两个方法。
我们可以通过 onRetainNonConfigurationInstance 代替 onSaveInstanceState,比如
@Override
public Object onRetainNonConfigurationInstance()
{
//这里需要保存的内容,在切换时不是bundle了,我们可以直接通过Object来代替
return obj;
}
在恢复窗口时,我们可以不使用 onRestoreInstanceState,而代替的是 getLastNonConfigurationInstance 方法。我们可以直接在onCreate中使用,比如
Object obj = getLastNonConfigurationInstance(); 最终obj的内容就是上次切换时的内容。
这里Android123提醒大家,每次Activity横竖屏切换时onCreate方法都会被触发。
转:http://www.android123.com.cn/androidkaifa/610.html
第二篇:
当Device configuration发生改变时,将伴随Destroying被系统调用。通过这个方法可以像onSaveInstanceState()的方法一样保留变化前的Activity State,最大的不同在于这个方法可以返回一个包含有状态信息的Object,其中甚至可以包含Activity Instance本身。新创建的Activity可以继承大量来至于Parent Activity State信息。
用这个方法保存Activity State后,通过getLastNonConfigurationInstance()在新的Activity Instance中恢复原有状态。比如:
@Overridepublic Object onRetainNonConfigurationInstance() { final MyDataObject data = MyLoadedData(); return data;}
在恢复窗口时,我们可以不使用onRestoreInstanceState,而代替的是 getLastNonConfigurationInstance 方法。我们可以直接在onCreate中使用,比如
@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final MyDataObject data = (MyDataObject) getLastNonConfigurationInstance(); if (data == null) { data = loadMyData(); } ...}
这个方法最大的好处是:
* 当Activity曾经通过某个资源得到一些图片或者信息,那么当再次恢复后,无需重新通过原始资源地址获取,可以快速的加载整个Activity状态信息。
* 当Activity包含有许多线程时,在变化后依然可以持有原有线程,无需通过重新创建进程恢复原有状态。
* 当Activity包含某些Connection Instance时,同样可以在整个变化过程中保持连接状态。
下边是需要特别注意的几点:
* onRetainNonConfigurationInstance()在onSaveInstanceState()之后被调用。
* 调用顺序同样介于onStop() 和 onDestroy()之间。
转:http://www.cofftech.com/thread-7566-1-1.html
- onRetainNonConfigurationInstance和getLastNonConfigurationInstance
- onRetainNonConfigurationInstance和getLastNonConfigurationInstance
- onRetainNonConfigurationInstance和getLastNonConfigurationInstance
- onRetainNonConfigurationInstance和getLastNonConfigurationInstance
- onRetainNonConfigurationInstance和getLastNonConfigurationInstance
- (onRetainNonConfigurationInstance和getLastNonConfigurationInstance)
- onRetainNonConfigurationInstance和getLastNonConfigurationInstance
- Android中onRetainNonConfigurationInstance和getLastNonConfigurationInstance
- activity状态的保存和保持(onRetainNonConfigurationInstance和getLastNonConfigurationInstance)
- Activity状态的保存和保持( onRetainNonConfigurationInstance 和 getLastNonConfigurationInstance )
- Android应用开发之(onRetainNonConfigurationInstance和getLastNonConfigurationInstance)
- onRetainNonConfigurationInstance()
- activity状态的保存和保持(onRetainNonConfigurationInstance和getLastNonConfigurationInstanc
- android getLastNonConfigurationInstance
- onSaveInstanceState() onRestoreInstanceState() onRetainNonConfigurationInstance() getLastNonConfigur
- 关于转屏,与activity状态的保存onRetainNonConfigurationInstance()
- 关于转屏,与activity状态的保存onRetainNonConfigurationInstance()
- 横竖屏切换时 onRetainNonConfigurationInstance方法居然 不调用
- sharepoint 2007 批量迁移用户
- vc6.0平台下两个mfc界面的内存共用
- BASE64.js
- 无法保存 .rar.part,因为无法读取源文件。 。。。。。
- java 静态方法中读取配置文件的方法(整了半天,特此记下来)
- onRetainNonConfigurationInstance和getLastNonConfigurationInstance
- Servlet事件监听器
- 雨夜思乡
- XAMPP中的apache无法启动的解决方法
- non-aggregates cannot be initialized with initializer list
- 在CentOS 4下添加开机自启动应用程序
- 今天看了2个截图,做个标记
- StringCoder .java
- 如何同时启动多个Tomcat服务器