Android Activity 之 重新创建
来源:互联网 发布:软件漏洞分析技术 编辑:程序博客网 时间:2024/05/12 00:09
目的: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/
- Android Activity 之 重新创建
- Activity重新创建之recreate
- Activity生命周期 之 重新创建一个Activity
- Activity生命周期之重新创建Activity(recreating activity)
- android activity横竖屏切换,Activity重新创建问题解决!
- Activity的重新创建
- 重新创建activity
- 重新创建Activity
- 重新创建一个Activity
- 重新创建Activity
- Activity重新创建
- 重新创建Activity
- 重新创建Activity
- 重新创建Activity
- Android从零开始之重新认识Activity--基础知识
- Android从零开始之重新认识Activity--生命周期
- Android官方入门文档[15]重新创建一个Activity活动
- 解决android横竖屏切换activity重新创建
- viewport
- 分手后,甭想这些星座会跟你念旧情
- web标签页,web网页的图标设置
- Python下载大全
- 最小生成树
- Android Activity 之 重新创建
- 【慕课笔记】第六章 数组 第5节 使用foreach操作数组
- 扁平化后台管理 Bootstrap、HTML5、CSS3 Java
- 程序猿的思维方式——极度推荐(一分钟读懂程序猿)
- centos7.1作为pxe机安装XenServer6.2
- 【慕课笔记】第六章 数组 第6节 JAVA中的二维数组
- Jquery数组和对象操作
- 2048简易控制台
- s7-1200学习琐记(3)