onCreate的savedInstanceState为何一直是null?

中才德创 2011-08-06 10:35:12
onCreate
onSaveInstanceState
onRestoreInstanceState
各是什么时机运行?

package com.androidbook;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class HelloActivity extends Activity {
private static final String TAG = "MyNewLog";

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*
* If an instance of this activity had previously stopped, we can
* get the original text it started with.
* */
if (null != savedInstanceState)
{
int IntTest = savedInstanceState.getInt("IntTest");
String StrTest = savedInstanceState.getString("StrTest");
Log.e(TAG, "onCreate get the savedInstanceState+IntTest="+IntTest+"+StrTest="+StrTest);
}
setContentView(R.layout.main);
Log.e(TAG, "onCreate");
}

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
/*
* Save away the original text, so we still have it if the activity
* needs to be killed while paused.
* */
savedInstanceState.putInt("IntTest", 0);
savedInstanceState.putString("StrTest", "savedInstanceState test");
super.onSaveInstanceState(savedInstanceState);
Log.e(TAG, "onSaveInstanceState");
}

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
int IntTest = savedInstanceState.getInt("IntTest");
String StrTest = savedInstanceState.getString("StrTest");
Log.e(TAG, "onRestoreInstanceState+IntTest="+IntTest+"+StrTest="+StrTest);
}
}
...全文
1283 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yita07 2011-10-22
  • 打赏
  • 举报
回复 2
如果懂,你就说,也帮别人一个忙。不懂就说不懂,不要装逼。
[Quote=引用 3 楼 redoffice 的回复:]

哥们搞C++的吧。这是通病。。。
[/Quote]
中才德创 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 youth0532 的回复:]
onCreate是在activity创建时回调;
onSavaInstanceState应该是再onPause()后回调,就是在转入后台时要保存数据。
对于这些回调函数,可以都打上log,然后执行一个activity创建-前台-后台-destroy的过程,看看是什么时候调用的,多动动手
[/Quote]动手了,没找到。
redoffice 2011-08-07
  • 打赏
  • 举报
回复
哥们搞C++的吧。这是通病。。。
JeffTech 2011-08-06
  • 打赏
  • 举报
回复
onCreate是在activity创建时回调;
onSavaInstanceState应该是再onPause()后回调,就是在转入后台时要保存数据。
对于这些回调函数,可以都打上log,然后执行一个activity创建-前台-后台-destroy的过程,看看是什么时候调用的,多动动手

80,330

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧