我正在尝试保存和恢复Activity使用方法onSaveInstanceState()和状态onRestoreInstanceState().
问题是它永远不会进入onRestoreInstanceState()方法.任何人都可以向我解释为什么会这样吗?
对不起我的不解,但我是android开发的新手.
我有一个活动A和活动B的应用程序,我从活动A转到活动B.当我离开活动A时,onSaveInstanceState方法被调用,但是当我回到活动A时(来自活动B在同一个应用程序中) ),onCreate方法中的bundle 为null.
我该怎么办,以保存活动A以前的状态?我只想存储应用程序生命周期的数据.
有人可以帮我弄这个吗?
这是我的活动A的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState != null)
{
Log.v("Main", savedInstanceState.getString("test"));
}
else
{
Log.v("Main", "old instance");
}
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState)
{
Log.v("Main", "save instance");
savedInstanceState.putString("test", "my test string");
super.onSaveInstanceState(savedInstanceState);
}
public void buttonClick(View view)
{
Intent intent = new Intent(this, Activity2.class);
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
这是我的活动B的代码,当我按下按钮返回活动A:
public void onBack(View view)
{
NavUtils.navigateUpFromSameTask(this);
}
Run Code Online (Sandbox Code Playgroud) android android-lifecycle onrestoreinstancestate onsaveinstancestate
我想测试一下onSaveInstanceState和onRestoreInstanceState我在模拟器应用程序.
我发现了这个,它说我们可以在方向更改期间模拟这个,但是我将一些变量存储在应用程序级别(子类android.app.Application)中,因此方向更改不会消除变量.
所以我的问题是,我如何模拟低内存情况,从而杀死我的活动?
希望我已经清楚了.谢谢
我阅读的所有资料都提到了几个案例,并以"其他一些案例"结束.在视图/活动中调用onSaveInstanceState方法时的所有情况是什么?