Android Activity 之 重新创建

来源:互联网 发布:软件漏洞分析技术 编辑:程序博客网 时间:2024/05/12 00:09

目的:Activity被系统销毁,重建时能恢复销毁前的状态。

原理:

Activity生命周期

实验:

说明:1、把下面代码copy到eclipse中,编译烧写到,通过横竖屏切换,可验证原理中的Activity生命周期的流程图。
2、程序通过back返回键退出程序时,不回调onSaveInstanceState。

代码:

public class MainActivity extends Activity {    static final String EDITTEXT = "edittext";    static final String MCOUNT = "mcount";    private Button myButton;    int mCount = 0;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        myButton = (Button) findViewById(R.id.myButton);        myButton.setText(Integer.toString(mCount));        myButton.setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                mCount++;                myButton.setText(Integer.toString(mCount));            }        });                Log.d("zxs", "/------ Activity onCreate ----------/");    }    @Override    protected void onStart() {        super.onStart();        Log.d("zxs", "/------ Activity onStart ----------/");    }    @Override    protected void onRestoreInstanceState(Bundle      savedInstanceState) {           super.onRestoreInstanceState(savedInstanceState);        if (savedInstanceState != null) {            mCount = (Integer) savedInstanceState.get(MCOUNT);            myButton.setText(Integer.toString(mCount));            Log.d("zxs", "/------ onRestoreInstanceState savedInstanceState != null ----------/");        } else {            Log.d("zxs", "/------ onRestoreInstanceState savedInstanceState == null ----------/");        }        Log.d("zxs", "/------ Activity onRestoreInstanceState ----------/");    }    @Override    protected void onResume() {        super.onResume();        Log.d("zxs", "/------ Activity onResume ----------/");    }    @Override    protected void onSaveInstanceState(Bundle savedInstanceState) {        super.onSaveInstanceState(savedInstanceState);        savedInstanceState.putInt(MCOUNT, mCount);        Log.d("zxs", "/------ Activity onSaveInstanceState ----------/");    }    @Override    protected void onStop() {        super.onStop();        Log.d("zxs", "/------ Activity onStop ----------/");    }    @Override    protected void onDestroy() {        super.onDestroy();        Log.d("zxs", "/------ Activity onDestroy ----------/");    }}

logcat:

01-22 17:00:54.393: D/zxs(28137): /—— Activity onCreate ———-/
01-22 17:00:54.403: D/zxs(28137): /—— Activity onStart ———-/
01-22 17:00:54.403: D/zxs(28137): /—— Activity onResume ———-/
01-22 17:01:05.383: D/zxs(28137): /—— Activity onSaveInstanceState ———-/
01-22 17:01:05.383: D/zxs(28137): /—— Activity onStop ———-/
01-22 17:01:05.383: D/zxs(28137): /—— Activity onDestroy ———-/
01-22 17:01:06.103: D/zxs(28137): /—— Activity onCreate ———-/
01-22 17:01:06.103: D/zxs(28137): /—— Activity onStart ———-/
01-22 17:01:06.103: D/zxs(28137): /—— onRestoreInstanceState savedInstanceState != null ———-/
01-22 17:01:06.103: D/zxs(28137): /—— Activity onRestoreInstanceState ———-/
01-22 17:01:06.103: D/zxs(28137): /—— Activity onResume ———-/
01-22 17:01:15.053: D/zxs(28137): /—— Activity onSaveInstanceState ———-/
01-22 17:01:15.053: D/zxs(28137): /—— Activity onStop ———-/
01-22 17:01:15.053: D/zxs(28137): /—— Activity onDestroy ———-/
01-22 17:01:15.313: D/zxs(28137): /—— Activity onCreate ———-/
01-22 17:01:15.313: D/zxs(28137): /—— Activity onStart ———-/
01-22 17:01:15.313: D/zxs(28137): /—— onRestoreInstanceState savedInstanceState != null ———-/
01-22 17:01:15.313: D/zxs(28137): /—— Activity onRestoreInstanceState ———-/
01-22 17:01:15.313: D/zxs(28137): /—— Activity onResume ———-/

参考:
1:http://my.oschina.net/u/556624/blog/271667:
2:http://developer.android.com/

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 母狗生的死狗怎么办 狗生宝宝都死了奶水怎么办 狗狗生出来不动怎么办 兔子喝了84水怎么办 小狗喝了84水怎么办 天气热宝宝不爱喝水怎么办 狗脐带掉了出血怎么办 刚生的小狗没奶怎么办 家兔在笼子里下崽怎么办 小兔子不吃东西 精神不好怎么办 兔子要生宝宝了怎么办 宝宝让兔子咬了怎么办 兔子的右耳坏了怎么办 被小兔子咬了怎么办 打老鼠被老鼠咬了了怎么办 制作棒棒糖时木棍翘起怎么办 兔子被打后怕我怎么办 兔子后腿摔断了怎么办 兔子腿骨头断了怎么办 减肥老是控制不住吃怎么办 不爱吃主食爱吃零食怎么办 猫咪奶涨的很硬怎么办 斩魂技能乱加的怎么办 狗狗不吃东西还拉稀怎么办 狗狗拉稀不吃饭怎么办 狗狗几天不吃东西怎么办 狗狗不吃不喝怎么办 拖鞋洗了有臭味怎么办 拖鞋湿水了很臭怎么办 棉被上渗了酸奶怎么办 酸奶弄在衣服上怎么办 孩子把褥子尿湿怎么办 小孩尿过的褥子怎么办 包包放着发霉了怎么办 被套盖久了发黄怎么办 小白鞋里面发霉怎么办 棉被淋了一点雨怎么办 苹果手机被拉进电话群怎么办 墙上的插座烧了怎么办 富士康早退4分钟怎么办 我老婆起泡疹腿剌痛睡不着了怎么办