黑马程序员安卓教程Activity的生命周期onCreate和onDestroy.docx
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);}。

卡西欧5800p使用说明书资料.ppt
锂金属电池界面稳定化-全面剖析.docx
SG3525斩控式单相交流调压电路设计要点.doc
话剧《枕头人》剧本.docx
重视家风建设全面从严治党治家应成为领导干部必修课PPT模板.pptx
黄渤海区拖网渔具综合调查分析.docx
2024年一级造价工程师考试《建设工程技术与计量(交通运输工程)-公路篇》真题及答案.docx
【课件】Unit+3+Reading+and+Thinking公开课课件人教版(2019)必修第一册.pptx
嵌入式软件开发流程566841551.doc
生命密码PPT课件.ppt
爱与责任-师德之魂.ppt
制冷空调装置自动控制技术讲义.ppt


