Activity生命周期

Activity是一个用来提供用户交互界面的组件,它是四大组件之一,对于我们刚刚学习android的菜鸟来说是非常重要的,我们可以将一个屏幕理解为一个Activity,Activity通常是一个全屏的界面,每一个应用程序可以有一个或多个Activity,这里需要注意的是每一个Android应用都需要有一个入口Activity,也就是“MainActivity”,它作为程序的入口,就像Java应用中的main()方法一样,当然与java中main()方法的名称特定性不同,Android中入口Activity的名称可以由程序员自行定义,只是需要在项目配置文件AndroidManifest.xml中将其配置为入口Activity即可。

它也同一个线程一样是有生命周期的,下面看一下它的生命周期:

Activity共有以上7中状态,下面看以代码来理解各种状态之间的转化

MainActivity.java

下面看一下主要的代码:
public class MainActivity extends Activity {private Button btn;/**Activity四种状态*  1运行态*  2暂停态*  3停止态*  4终止态*/@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);System.out.println("1----onCreate");btn = (Button) findViewById(R.id.button1);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Intent i = new Intent(MainActivity.this,Act2.class);startActivity(i);}});}@Overrideprotected void onStart() {System.out.println("1----onStart");super.onStart();/*Log.i("1", "info");Log.d("2", "debug");Log.v("3", "verbose");Log.e("4", "error");Log.w("5", "warning");*/}@Overrideprotected void onResume() {System.out.println("1---onResume");super.onResume();}@Overrideprotected void onPause() {System.out.println("1----onPause");super.onPause();}@Overrideprotected void onStop() {System.out.println("1---onStop");super.onStop();}@Overrideprotected void onRestart() {System.out.println("1---onRestart");super.onRestart();}@Overrideprotected void onDestroy() {System.out.println("1---onDestroy");super.onDestroy();}
}

Act2.java

public class Act2 extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {setContentView(R.layout.act2);super.onCreate(savedInstanceState);System.out.println("2---onCreate");}@Overrideprotected void onStart() {System.out.println("2----onStart");super.onStart();/*Log.i("1", "info");Log.d("2", "debug");Log.v("3", "verbose");Log.e("4", "error");Log.w("5", "warning");*/}@Overrideprotected void onResume() {System.out.println("2---onResume");super.onResume();}@Overrideprotected void onPause() {System.out.println("2----onPause");super.onPause();}@Overrideprotected void onStop() {System.out.println("2---onStop");super.onStop();}@Overrideprotected void onRestart() {System.out.println("2---onRestart");super.onRestart();}@Overrideprotected void onDestroy() {System.out.println("2---onDestroy");super.onDestroy();}
}

另外两个配置文件的代码如下:

MainActivity.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world" /><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignTop="@+id/textView1"android:layout_marginLeft="72dp"android:layout_toRightOf="@+id/textView1"android:text="BUTTON" />
</RelativeLayout>
act2.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World" />
</LinearLayout>

运行结果如下:

运行时状态如下所示:

转载于:https://blog.51cto.com/maidoujava/1279893

androidActivity生命周期相关推荐

  1. android-activity生命周期方法

    整个Activity生命周期中的所有方法,我们可以根据程序的需要来覆盖相应的方法: public class Activity extends ApplicationContext { //创建的时候 ...

  2. Android-Activity生命周期、广播接收者、服务

    一.Activity 1.生命周期 在Activity3种状态切换的时候会自动执行一些生命周期方法 生命周期方法共有7个: onCreate, onStart, onResume, onPause, ...

  3. Android-Activity生命周期

    Activity生命周期 Activity作为Android的四大组件之一,非常的重要,也是最常用的四大组件,使用Activity必须要在AndroidManifest中进行注册,那么作为Androi ...

  4. Android-----Activity生命周期

    1启动调用方法顺序 onCreate-->onStart-->onResume 2中途拨打电话应用操作的Activity 调用方法顺序 onPause-->onStop 3按返回键, ...

  5. LTV 即用户生命周期价值

    20220321 https://mp.weixin.qq.com/s/kPoojfRCbvCCV4zpnCimmQ 指标计算详细介绍 数据分析|如何做好用户生命周期价值分析 LTV https:// ...

  6. Harmony生命周期

    Harmony生命周期 系统管理或用户操作等行为,均会引起Page实例在其生命周期的不同状态之间进行转换.Ability类提供的回调机制能够让Page及时感知外界变化,从而正确地应对状态变化(比如释放 ...

  7. Activity在有Dialog时按Home键的生命周期

    当一个Activity弹出Dialog对话框时,程序的生命周期依然是onCreate() - onStart() - onResume(),在弹出Dialog的时候并没有onPause()和onSto ...

  8. 横竖屏切换时Activity的生命周期

    1.不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏执行一次,切竖屏执行两次. 2.设置Activity的android:configChang ...

  9. Android中Service生命周期、启动、绑定、混合使用

    一.Activity和Service如何绑定: 1.Service和Activity之间的连接可以用ServiceConnection来实现.实现一个ServiceConnection对象实例,重写o ...

最新文章

  1. 三星a5009Android6.0,三星A5009原版系统刷机包_三星A5009最新升级包线刷包和root
  2. 马斯克用实力赢得信任!SpaceX获NASA批准,可用“二手”火箭和飞船载人航天
  3. 辅助模块加速收敛,精度大幅提升 移动端实时的NanoDet-Plus来了
  4. 【JavaScript】JavaScript模拟Class
  5. en45545防火标准_揭秘:600岁故宫如何防火?
  6. 后台获取数据排序后在网页显示(Comparator)
  7. 配置webpack.config.js遇到的一些问题
  8. c++ 类和对象的内存管理
  9. SQL Server警报解决性能问题:如何创建和使用SQL Server警报
  10. 浅析VB For Each.Next语句
  11. java中的“+”运算符,产生新对象问题。(非常好的面试题!)
  12. UVa 1585 - Score
  13. JavaScript实现对象的深度克隆及typeof和instanceof【简洁】【分享】
  14. r语言 怎么把字调大_R语言中的字体调整
  15. nucleo STM32F072 PWM 测试
  16. DXP2004生成PCB不显示连线
  17. 西安电子科技大学计算机学院保研政策,西安电子科技大学计算机学院(专业学位)计算机技术保研条件...
  18. ​【Flutter小记7】​Mac M1 使用 pod install编译常见两种错误解决方案(CocoaPod Error | LoadError)
  19. mysql safe file priv_解决MySQL导入数据时遇到secure-file-priv的问题
  20. 淘宝新店运营怎么选品?API接口助您高效选品

热门文章

  1. 黑马程序员—————— 多线程
  2. TP-Link路由器下的多种接入模式
  3. Connection to node 0 (/192.168.204.131:9092) could not be established
  4. python测试用例管理模块_python-selenium并发执行测试用例(方法一 各模块每一条并发执行)...
  5. 国开计算机应用基础中考答案,国开计算机应用基础模块4PowerPoint2010电子演示文稿系统答案...
  6. 计算机网络必备知识,非常全面!
  7. JavaScript 世界万物诞生记
  8. eigen 编译_头条 | 使用eigen实现四元数、欧拉角、旋转矩阵、旋转向量间的转换...
  9. 数值的加减会改变python中id,在python中调用Nan值并更改为数字
  10. 寻仙服务器要维护多久,寻仙手游几天开一个区