Android——通过案例代码测试Activity的整个生命周期
来源:互联网 发布:mysql查看root密码 编辑:程序博客网 时间:2024/06/05 15:58
在Activity创建、可视、隐藏、重新可视、销毁等过程中,我们有时候需要做一些特殊处理,到底应该在Activity的哪个函数中进行处理操作呢?这就是今天我要讲的。
一、案例代码
1、MainActivity.java
这个Activity是项目的启动Activity,也就是主Activity。通过这个Activity启动其他Activity,但是主Activity只能暂时不可见,不能销毁,否则,其他Activity就无法再返回到这个主Activity了。直接上代码:
package com.ju.testphpserver.activity;import com.ju.testphpserver.model.UserInfoModel;import com.ju.testphpserver.object.User;import com.ju.testphpserver.R;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class MainActivity extends Activity { private TextView userIDTV; private TextView userNameTV; private TextView passwordTV; private Button getBtn; private Button deleteBtn; private Button updateBtn; private EditText userIDET; private Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); deleteBtn = (Button) findViewById(R.id.deleteBtn); intent = this.getIntent(); getBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { initActivity(); } }); deleteBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, DeleteActivity.class); startActivity(intent); } }); Log.i("ju", "MainActivity:onCreate()"); } @Override public void onStart(){ super.onStart(); Log.i("ju", "MainActivity:onStart()"); } @Override public void onResume(){ super.onResume(); Log.i("ju", "MainActivity:onResume()"); } @Override public void onPause(){ super.onPause(); Log.i("ju", "MainActivity:onPause()"); } @Override protected void onStop() { super.onStop(); Log.i("ju", "MainActivity:onStop()"); } @Override public void onDestroy(){ super.onDestroy(); Log.i("ju", "MainActivity:onDestroy()"); }}
2、DeleteActivity.java
package com.ju.testphpserver.activity;import com.ju.testphpserver.model.UserInfoModel;import com.ju.testphpserver.R;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class DeleteActivity extends Activity { private Button gobackBtn; private Button deleteUserBtn; private EditText userIDTV; private Intent intent; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_deletectivity); gobackBtn = (Button) findViewById(R.id.gobackBtn); deleteUserBtn = (Button) findViewById(R.id.deleteUserBtn); intent = this.getIntent(); gobackBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { DeleteActivity.this.setResult(RESULT_OK, intent); DeleteActivity.this.finish(); } }); Log.i("ju", "DeleteActivity:onCreate()"); } @Override public void onStart(){ super.onStart(); Log.i("ju", "DeleteActivity:onStart()"); } @Override public void onResume(){ super.onResume(); Log.i("ju", "DeleteActivity:onResume()"); } @Override public void onPause(){ super.onPause(); Log.i("ju", "DeleteActivity:onPause()"); } @Override protected void onStop() { super.onStop(); Log.i("ju", "DeleteActivity:onStop()"); } @Override public void onDestroy(){ super.onDestroy(); Log.i("ju", "DeleteActivity:onDestroy()"); }}
3、运行截图:
二、各类情景分析
1、当项目启动时,依次启动函数的顺序是:
MainAcitivity:onCreate()
->
MainAcitivity:onStart()
->
MainActivity:onResume()
2、当点击“删除页面”时,视图切换到了删除页面:DeleteActivity,依次启动函数的顺序是:
MainActivity:onPause()
->
DeleteActivity:onCreate()
->
DeleteActivity:onStart()
->
DeleteActivity:onResume()
->
MainActivity:onStop()
3、当点击删除页面的“返回”按钮时,视图再次切换回主Activity:MainActivity,依次启动函数顺序是:
DeleteActivity:onPause()
->
MainActivity:onStart()
->
MainActivity:onResume()
->
DeleteAcvitiy:onStop()
->
DeleteActivity:OnDestroy()
4、当项目正在运行,遇到锁屏时:
MainActivity:onPause()
->
MainActiviy:onStop()
屏幕解锁后,重新唤醒应用,执行以下顺序:
MainActivity:onStart()
->
MainActivity:onResume()
5、当直接退出application时,执行以下顺序:
MainActivity:onPause()
->
MainActiviy:onStop()
->
MainActivity:onDestroy()
三、应用
如果我们在开发过程中,需要对某个activity的某个过程进行处理,就可以将代码直接写在相应的函数中。
例如:
1、初始化代码,只执行一次,一般写在onCreate()函数中。
2、内存回收类代码,一般写在onDestroy()函数中。
3、某个视图每次重新加载时,需要更新的代码,一般写在onStart()函数中。
以上只是我个人意见,希望对各位写代码有一定的帮助吧。
参考文章(activity):
http://www.runoob.com/android/android-acitivities.html
- Android——通过案例代码测试Activity的整个生命周期
- Android安卓——Activity组件代码测试生命周期(续)
- android activity 生命周期测试
- Android activity生命周期测试
- Android的Activity的生命周期测试
- Activity的生命周期测试
- Android学习——Activity的生命周期
- Android——Activity的生命周期
- Android 的Activity生命周期——栈
- Android开发——Activity的生命周期
- Android之路—Activity的生命周期
- Android——Activity生命周期
- Android——Activity生命周期
- Activity 生命周期 ——各种情况测试
- android学习:android Activity生命周期的七个方法测试
- Android Activity 生命周期 图+代码
- Android代码练习:Activity生命周期
- activity的生命周期——第一行代码阅读笔记
- java----内置监视器
- 数据库问题
- 分布式文件存储的数据库MongoDB教程整理
- 观察者模式 Java
- python基础之生成器迭代器
- Android——通过案例代码测试Activity的整个生命周期
- 关于调试opencv的那些坑
- 稀疏矩阵压缩存储的三元组表示法
- android之常用工具类
- linux 进程地址空间的一步步探究 (转的)
- android通过相册、相机设置头像
- cypher语言使用
- 蓝桥杯 第六届决赛 奇怪的数列 JAVA
- Python 的lambda 以及 filter , map , reduce