蹉跎莫遣韶光老,人生唯有读书好。这篇文章主要讲述Android——Activity的生命周期相关的知识,希望能为你提供帮助。
一,Demo測试Activity的生命周期
写两个Activity:
package com.example.activity_04; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class FirstActivity extends Activity { private Button myButton=null; @Override protected void onCreate(Bundle savedInstanceState) { System.out.println(" firstActivity--> onCreate" ); super.onCreate(savedInstanceState); setContentView(R.layout.activity_first); myButton=(Button)findViewById(R.id.myButton); myButton.setOnClickListener(new BtnClick()); }class BtnClick implements OnClickListener{@Override public void onClick(View arg0) { // TODO 自己主动生成的方法存根 Intent intent=new Intent(); intent.setClass(FirstActivity.this,SecondActivity.class ); FirstActivity.this.startActivity(intent); }} @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.first, menu); return true; }@Override protected void onRestart() { // TODO 自己主动生成的方法存根 System.out.println(" firstActivity--> onRestart" ); super.onRestart(); } @Override protected void onDestroy() { // TODO 自己主动生成的方法存根 System.out.println(" firstActivity--> onDestroy" ); super.onDestroy(); } @Override protected void onPause() { // TODO 自己主动生成的方法存根 System.out.println(" firstActivity--> onPause" ); super.onPause(); } @Override protected void onResume() { // TODO 自己主动生成的方法存根 System.out.println(" firstActivity--> onResume" ); super.onResume(); } @Override protected void onStart() { // TODO 自己主动生成的方法存根 System.out.println(" firstActivity--> onStart" ); super.onStart(); } @Override protected void onStop() { // TODO 自己主动生成的方法存根 System.out.println(" firstActivity--> onStop" ); super.onStop(); }}
package com.example.activity_04; import android.app.Activity; import android.os.Bundle; public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO 自己主动生成的方法存根 System.out.println(" SecondActivity---> onCreate" ); super.onCreate(savedInstanceState); } @Override protected void onDestroy() { // TODO 自己主动生成的方法存根 System.out.println(" SecondActivity---> onDestroy" ); super.onDestroy(); } @Override protected void onPause() { // TODO 自己主动生成的方法存根 System.out.println(" SecondActivity---> onPause" ); super.onPause(); } @Override protected void onRestart() { // TODO 自己主动生成的方法存根 System.out.println(" SecondActivity---> onRestart" ); super.onRestart(); } @Override protected void onResume() { // TODO 自己主动生成的方法存根 System.out.println(" SecondActivity---> onResume" ); super.onResume(); } @Override protected void onStart() { // TODO 自己主动生成的方法存根 System.out.println(" SecondActivity---> onStart" ); super.onStart(); } @Override protected void onStop() { // TODO 自己主动生成的方法存根 System.out.println(" SecondActivity---> onStop" ); super.onStop(); } }
然后启动程序,如图:
文章图片
能够看到第一个Activity以此被调用的方法。
onCreate | OnStart | OnResume |
第一次创建时调用,能够配置使用的layout文件 | 当Activity能被我们看到的时候 | 当Activity能够获得用户焦点的时候被调用 |
之后点击第一个Activiyt上的button,跳转到第二个Activity:
文章图片
发现第一个Activity的OnPause方法被调用,接着是初始化一个新的Activity被调用的方法,当第二个Activity出现之后,第一个Activity的OnStop方法被调用。
OnPause | OnStop |
应用程序启动另外一个activity的时候,会调用第一个activity的OnPause方法 :通常保存当前Activity的数据 | 当Activity处于不可见的时候会调用第一个activity的Onstop方法,假设新出来的activity不全然遮挡住第一个activity,则不会调用 |
接着点击backbutton,
文章图片
注意这里第一个Activity起来之后先调用的是OnRestart方法。
OnDestory | OnRestart |
销毁Activity 一般两种情况会调用这种方法: 1,调用activity的finish方法 2,当系统资源不够用的时候 | 又一次调用pausedactivity |
小结:
Activity调用的生命周期感觉相似.NET里面页面生命周期。感觉比那个简单点儿。
【Android——Activity的生命周期】
推荐阅读
- Android4.4系统源码百度网盘下载
- [Oracle] - Create DB on Oracle 12c for an Application
- 虚拟内存(VirtualAlloc),堆(HeapAlloc/malloc/new)和Memory Mapped File
- Android SlidingMenu 使用具体解释
- 图解Android View的scrollTo(),scrollBy(),getScrollX(), getScrollY()
- android在Service的onStartCommand()中调用stopself()应该注意的问题
- Android攻城狮Handler简介
- Android使用DrawerLayout仿qq6.6版本侧滑效果
- 黎活明8天快速掌握android视频教程--20_采用ContentProvider对外共享数据