好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

黑马程序员安卓教程Activity的生命周期onCreate和onDestroy.docx

5页
  • 卖家[上传人]:宝路
  • 文档编号:21653811
  • 上传时间:2017-11-24
  • 文档格式:DOCX
  • 文档大小:1.97MB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • Activity 生命周期之创建和销毁一个 Activity 通常是一个单独的屏幕即一个页面,Activity 生命周期是指 Activity 从创建到销毁的过程在 Activity 的生命周期中必须会执行一些方法函数,这些方法就是生命周期的回调例如:人的生命周期就是其从出生到死亡的过程,在这个生命周期中必定会执行“出生函数“和“死亡函数” 下面我们通过一个 DEMO 来理解 Activity 的生命周期1.新建工程【File】【new】【Android Application Project】命名为:06_activity 生命周期2.生命周期的创建新建工程“06_activity 生命周期 ”的主 Activity 中,重写了 onCreate()方法,代码如例 1-1 所示:例 1-1@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);System.out.println("oncreate 被创建");}对 onCreate 方法进行分析,该方法描述如图 1-1 所示:图 1-1 所示由图 1-1 可知:onCreate 方法在 Activity 启动时调用。

      在这个方法中我们需要做一系列的初始化操作,例如调用 setContentView 方法加载该 Activity UI 的根视图,调用 findViewById 来查找相关控件等清空 logcat,运行程序,此时 logcat 输出如图 1-2 所示信息:图 1-2 所示从图 1-2 可知:在创建 Activity 时 onCreate 方法被调用事实上,onCreate 方法是 Activity 生命周期的开始毋庸置疑,有开始就会有结束那么,Activity 生命周期的结束是什么概念呢?在其生命周期结束时会回调什么生命函数呢?3.生命周期的销毁Activity 生命周期的结束即系统将释放该 Activity 所占用的内存资源,当一个 Activity 销毁时会调用onDestroy 方法,代码如例 1-2:例 1-2@Overrideprotected void onDestroy() {System.out.println("ondestroy 被回收了");super.onDestroy();}对 onDestroy 方法进行分析,该方法描述如图 1-3 所示:图 1-3 所示从图 1-3 可知:当 Activity 销毁时会调用该方法来进行一些清理操作。

      该方法会在以下两种情景下调用,第一:执行该 Activity 的 finish 方法;第二:系统自动临时销毁该 Activity 用来节约内存资源下面我们来模拟销毁 Activity 的过程清空 logcat,运行程序,当程序启动之后点击模拟器上的“back”键,过程如图 1-4 所示:点 击 B A C K 键图 1-4 所示此时 logcat 打印如图 1-5 所示的信息:图 1-5 所示从图 1-5 可知:启动工程,Activity 首先会被创建,当点击“BACk ”键时,该 Activity 就会调用onDestroy 来销毁这个 Activity在 onDestroy 方法中,我们常常可以做一些清理操作,应用场景如下:在“ 05_短信发送器” ,假设在编辑短信中,我们不小心误按了“BACK”键,此时,当前 Activity 就会被销毁,编写的短信内容也会被清空为此,我们可以在回调 onDestroy 方法时将该短信的编辑内容保存到本地,下次编写时先从本地读取保存的短信保存短信代码如例 1-3:例 1-3@Overrideprotected void onDestroy() {String smscontent = et_content.getText().toString().trim();Editor editor = sp.edit();editor.putString("smscontent", smscontent);mit();Toast.makeText(this, "短信已经保存到草稿箱", 0).show();super.onDestroy();}例 1-3 先读取编辑框的内容,然后将短信保存在 SharedPreferences 中。

      因此,在下一次编写短信时应先从该 SharedPreferences 中读取待编辑的短信代码如例 1-4 所示:例 1-4@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sp = getSharedPreferences("info",MODE_PRIVATE);et_phone = (EditText) findViewById(R.id.et_phone);et_content = (EditText) findViewById(R.id.et_content);String smscontent = sp.getString("smscontent", "");//读取数据,默认值为空et_content.setText(smscontent);}。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.