Activity

什么是Activity?

  Android中的Activity是什么?Activity可以理解为是活动,服务或者是一个界面,但是这些说法都不是准确,但是并不妨碍我们理解。我们可以举例来说明一下Activity,我们打开手机,点击一个应用,我们进入应用。进入应用首先是一个界面,这个界面其实就是一个Activity。当我们点击界面上的一个按钮或者其他的时候,我们可能会进入另一个界面,这时即使我们进入了另一个Activity。但是刚才的Activity并没有消失,而是被停止,当我们从当前的Activity退出的时候,我们就会回到之前的Activity。Activity的作用其实就是显示应用界面与我们用户进行交互的(这样一直说Activity会不会有点晕啊,嘿嘿,不过我觉的应该比较好理解的。)


Activity的生命周期

  要想使用好Activity首先要掌握Activity的生命周期。Activity都是存储在堆栈中的,遵循先进后出的原则。这也正符合刚才我们描述的Activity的切换。
  学习Activity的生命周期我们先看下图:
这里写图片描述

1. onCreate()

  初始化Activity,这个方法会在活动第一次创建的时候被调用。用于给Activity进行初始化。

2. onStart()

  执行此方法后Activity变为可见状态。

3. onResume()

  运行此方法后,Activity处于运行状态,用户可以进行交互。此时的Activity一定是处于堆栈的栈顶,正在运行。

4. onPause()

  通常我们从这个当前Activity进入另一个Activity的时候会执行此方法,暂停当前的的Activity,然后启动另一个Activity。此时当前的Activity还是可见的。

5. onStop()

  当另一个Activity启动后(也就是执行onResume后),当前的Activity执行该方法,进入停止状态,该方法后,Activity变为不可见。

6. onDestroy()

  当从该Activity退出后,执行onDestroy()方法,Activity死亡,意味着生命的结束。
  
  正如图中所示,Activity的生命周期可以分为三层:
(1)完整生存期:
  从onCreate()一直到onDestroy()销毁结束。
(2)可见生存期:
  onStart()执行后可见,直到onStop()执行后不可见。
(3)前台生存期
  Activity在onResume()和onPause()之间的是Activity在前台的运行的过程。


实例演示  

前台生存期

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //隐藏标题栏,必须写在setContentView方法的前面。
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        Log.d("Activity0818", "运行onCreate");
    }
    //重写onStart方法,并定义日志
    @Override
    protected void onStart() {
        super.onStart();
        Log.d("Activity0818", "运行onStart");
    }
    //重写onResume方法,并定义日志
    @Override
    protected void onResume() {
        super.onResume();
        Log.d("Activity0818", "运行onResume");

    }
    //重写onPause方法,并定义日志
    @Override
    protected void onPause() {
        super.onPause();
        Log.d("Activity0818", "运行onPause ");
    }
    //重写onStop方法,并定义日志
    @Override
    protected void onStop() {
        super.onStop();
        Log.d("Activity0818", "运行onStop ");
    }
    //重写onDestroy方法,并定义日志
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("Activity0818", "运行onDestroy ");
    }
}

这里写图片描述

可见生存期

//MainActivity
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //隐藏标题栏
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        Log.d("Activity0818", "运行onCreate");

        //创建一个点击事件,启动第二个界面
        Button button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(new OnClickListener() {
           @Override
            public void onClick(View view) {
                Log.d("Activity0818", "运行onClick ");
                Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
                startActivity(intent);
            }
        });
   }
    @Override
    protected void onStart() {
        super.onStart();
        Log.d("Activity0818", "运行onStart");
    }
    @Override
    protected void onResume() {
        super.onResume();
        Log.d("Activity0818", "运行onResume");

    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.d("Activity0818", "运行onPause ");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.d("Activity0818", "运行onStop ");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("Activity0818", "运行onDestroy ");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.d("Activity0818", "运行onRestart ");
    }
}
//SecondActivity
public class SecondActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        Log.d("Activity0818", "SecondActivity运行onCreate ");
    }
    @Override
    protected void onStart() {
        super.onStart();
        Log.d("Activity0818", "SecondActivity运行onStart");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.d("Activity0818", "SecondActivity运行onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.d("Activity0818", "SecondActivity运行onPause ");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.d("Activity0818", "SecondActivity运行onStop ");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("Activity0818", "SecondActivity运行onDestroy ");
    }
}

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小_爽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值