Android Activity的生命周期和基本使用

Activity作为最常用的四大组件之一,也是作为与用户交互最为频繁的组件之一,今天和大家分享一下Activity的生命周期,启动模式,和基本使用

一:创建一个Activity

1.创建TestActivity继承于Activity
public class TestActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.e("测试打印", "onCreate");
    }
   @Override
    protected void onStart() {
        Log.e("测试打印", "onStart");
        super.onStart();
    }
    @Override
    protected void onResume() {
        Log.e("测试打印", "onResume");
        super.onResume();
    }
    @Override
    protected void onPause() {
        Log.e("测试打印", "onPause");
        super.onPause();
    }
    @Override
    protected void onStop() {
        Log.e("测试打印", "onStop");
        super.onStop();
    }
    @Override
    protected void onDestroy() {
        Log.e("测试打印", "onDestroy ");
        super.onDestroy();
    }
 }
2.AndroidManifest.xml添加注册
<activity android:name=".TestActivity" />

二:启动当前Activity

1.启动跳转Activity

this: 当前的上下文
TestActivity.class: 需要跳转的Activity

Intent intent =new Intent(this,TestActivity.class);
startActivity(intent);

销毁当前Activity

finish()
2.Activity之间传值
**发送
Intent intent =new Intent(this,TestActivity.class);
intent.putExtra("key", true);
intent.putExtra("key2", "123");
startActivity(intent);
**接收
Intent intent=getIntent();
intent.getBooleanExtra("key",false);
intent.getStringExtra("key2");

三:生命周期

protected void onCreate(Bundle savedInstanceState):

一个 Activity 的实例被启动时调用的第一个方法。一般情况下,我们都覆盖该方法作为应用程序的一个入口点,在这里做一些初始化数据、设置用户界面等工作。大多数情况下,我们都要在这里从 xml 中加载设计好的用户界面。例如:

setContentView(R.layout.main);
protected void onStart():

该方法在 onCreate() 方法之后被调用,或者在 Activity 从 Stop 状态转换为 Active 状态时被调用。

protected void onReStart():

该方法当前界面重新启动时调用,比如另外一个界面返回此界面,第一次启动时不调用该方法

protected void onResume():

在 Activity 从 Pause 状态转换到 Active 状态时被调用。

protected void onResume():

在 Activity 从 Active 状态转换到 Pause 状态时被调用。

protected void onStop():

在 Activity 从 Active 状态转换到 Stop 状态时被调用。一般我们在这里保存 Activity 的状态信息。

protected void onDestroy():

在 Active 被结束时调用,它是被结束时调用的最后一个方法,在这里一般做些释放资源,清理内存等工作。

四:四种启动方式

**设置两种方式

1.AndroidManifest.xml添加

<activity android:name=".TestActivity"
		  android:launchMode="standard"/>
2.代码启动Activity时添加
Intent intent=new Intent(this,TestActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

**区别

1.standard

也就是说这种启动模式是默认的,我们平时在开发中使用最多的就是Standard模式的。

如果一个Activity的启动模式被设置成standard,那么它可以无限制的创建。你每一次通过Intent去启动这种模式的Activity都会重新创建一个。

2.singleTop

顾名思义,singleTop的意思就是“在顶部只能有一个”。

这种启动模式非常类似于standard,但是也有一些 区别:
如果在启动这种模式的Activity的时候,当前任务栈的顶端已经存在了相同的Activity,那系统就不会再创建新的,而是回调任务栈中已经存在的该Activity的onNewIntent( )方法。

3.singleTask

这种启动模式的Activity在Android系统中只允许存在一个实例。

如果系统中已经存在了该种启动模式的目标Activity,则系统并不会重新创建一个目标Activity,而是首先将持有目标Activity的整个任务栈都会被置于前台(用户可见),并且通过

4.singleInstance

这种启动模式和singleTask几乎一样,它也只允许系统中存在一个目标Activity,包括上面我们所说的SingleTask的一些特性singleInstance都有。唯一不同的是,持有目标Activity的任务栈中只能有目标Activity一个Actvitiy,不能再有别的Activity

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值