Bha*_*ath 54 android android-activity
我有一个活动A,它调用活动B.在活动B中,当我点击一个按钮时,调用finish(),然后调用活动B的onDestroy()并返回活动A.
根据android文档,在调用on onDestroy之前,将调用onSaveInstanceState(Bundle bundle),其中我执行以下操作.
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
System.out.println("Saving webview state");
Log.d(TAG, "In onsave");
wv.saveState(outState);
}
Run Code Online (Sandbox Code Playgroud)
并且下次从活动A开始活动B,
在oncreate()中,我执行以下操作:
onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
if(savedInstanceState != null){
//restore webview
}else {
// code
}
}
Run Code Online (Sandbox Code Playgroud)
但是,在活动B中调用onDestroy之前,永远不会调用onSaveInstanceState方法.任何有关这方面的帮助将不胜感激.
编辑:如果这是不可能的.如果有办法存储webview状态,请告诉我
Paw*_*zur 264
我有类似的情况.这显然是一个开发者的错误.我已经覆盖了错误的方法:
public void onSaveInstanceState(Bundle outState,
PersistableBundle outPersistentState)
Run Code Online (Sandbox Code Playgroud)
而是一个正确的:
protected void onSaveInstanceState(Bundle outState)
Run Code Online (Sandbox Code Playgroud)
Mar*_* S. 53
请注意onRestoreInstanceState()在重新创建活动时调用,但仅限于:
它被操作系统杀死了."这种情况发生在:
onRestoreInstanceState()会被叫到."因此,如果您正在进行活动并点击设备上的" 后退"按钮,则会对您的活动进行finish()编辑,下次启动应用时它会再次启动(听起来像重新创建,不是吗?)但这次没有保存状态,因为你有意退出它,当你点击后退按钮.
请参阅此处的文档:http: //developer.android.com/reference/android/app/Activity.html
请注意,保存持久数据非常重要,
onPause()而不是onSaveInstanceState(Bundle)因为后者不是生命周期回调的一部分,因此不会在其文档中描述的每种情况下调用.
onSaveInstanceState方法的文档说,
不要将此方法与活动生命周期回调混淆,例如
onPause(),当活动被放置在后台或正在进行销毁时,或者onStop()在销毁之前调用时,它总是被调用.何时onPause()和onStop()被调用而不是此方法的一个示例是当用户从活动B导航回活动A时:不需要调用onSaveInstanceState(Bundle)B,因为该特定实例永远不会被恢复,因此系统避免调用它.onPause()调用时的示例而不是onSaveInstanceState(Bundle)在活动A前启动活动B时:onSaveInstanceState(Bundle)如果在B的生命周期内没有杀死活动A,则系统可以避免调用活动A,因为A的用户界面的状态将保持不变.
试试这个:
@Override
public void onPause(){
System.out.println("Saving webview state");
Log.d(TAG, "In onsave");
wv.saveState(outState);
super.onPause();
}
and
@Override
public void onResume(){
//restore webview
}
Run Code Online (Sandbox Code Playgroud)
我不确定if语句的目的是什么,但试试看看会发生什么.
| 归档时间: |
|
| 查看次数: |
43107 次 |
| 最近记录: |