Android程序设计-Activity

目录

Activity介绍

Context

Intent

startActivityForResult()和onActivityResult()

Activity的生命周期


Activity介绍

        Activity是一种应用组件,用户可与其提供的屏幕进行交互,以执行拨打电话、拍摄照片、发送电子邮件或查看地图等操作。本文主要介绍Activity的创建、跳转、数据交互及它的生命周期。

Context

        Context表示上下文,在 Android Context 分为Application Context Activity ContextService Context三种。

      Context描述的是一个应用程序环境的信息,通过它可以获取应用程序的资源和类,也包括一些应用级别操作,例如启动Activity、发送广播和接受Intent信息等。

Intent

        Intent中文翻译为“意图”,在Android Studio中,它可用于开启新的Activity,也可用于开启 Service服务和发送广播消息。另外Intent可以用于不同组件之间进行数据传递,是Android程序中各个组件进行交互的一种重要方式,其主要分为两种类型。

1)显式Intent:如果Intent中明确包含了要启动的组件的完整类名(包名及类名),那么这个Intent就是显式的,使用显式Intent最典型的情形是在自己的App中启动一个组件,如:

public void onClick(View view) {

        Intent subActivityIntent = new Intent(MainActivity.this, SubActivity.class);

        startActivity(subActivityIntent);

}

        通过启动按钮组件使活动由MainActivity跳转到SubActivity

       2)隐式Intent:如果Intent没有包含要启动的组件的完整类名,那么这个Intent就是隐式的。虽然隐式的Intent没有指定要启动的组件的类名,但是一般情况下,隐式的Intent都要指定需要执行的action,一般隐式Intent用在想通过自己的App启动另一个App的组件的时候,让另一个App的组件接收并处理该Intent,如:

        Intent intent = new Intent(Intent.ACTION_VIEW);

        intent.setData(Uri.parse("https://www.baidu.com"));

        startActivity(intent);

通过Intent启动本地的浏览器打开百度网页。

startActivityForResult()和onActivityResult()

        主界面(Activity)通过startActivityForResult()方法跳转至多个不同的子Activity,当子Activity的代码执行完毕后,再次返回主页面,将子activity中得到的数据显示在主界面或将完成的数据交给主Activity处理。而处理这种带数据的意图跳转需要使用到ActivityonActivityResult()方法

        在Activity中重写onActivityResult(int requestCode, int resultCode, Intent data)方法,可以得到传回的数据,其中requestCode用于与startActivityForResult中的requestCode值进行比较判断,以便确认返回的数据是从哪个Activity返回的;resultCode是由子Activity通过其setResult()方法返回,适用于多个activity都返回数据时,来标识到底是哪一个activity返回的值。Intent对象带有返回的数据可以通过“data.getXxxExtra( );”方法来获取指定数据类型的数据。下面用一段简单的代码来说明Activity的跳转数据处理框架:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {   //根据请求码标识哪个Activity打开
    }
    switch(resultCode) {     //根据结果码标识哪个Activity返回
    }
}

Activity的生命周期

        Activity的生命周期即活动从开始到结束所经历的各个状态;换言之,从一个状态到另一个状态的转变,从无到有再到无,这样一个过程中所经历的状态就叫做生命周期。

Activity本质上有四种状态:

1)运行:一个活动被移到了活动栈顶部或前台。

2)暂停:如果一个活动被另一个非全屏的活动所覆盖(比如一个Dialog),那么该活动就失去了焦点,它将会暂停(但它仍然保留所有的状态和成员信息,并且仍然是依附在WindowsManager上),在系统内存极度缺乏时会将其杀死。

3)停止:如果一个活动被另一个全屏活动完全覆盖,那么该活动处于停止状态(状态和成员信息会保留,但是Activity已经不再依附于WindowsManager了),在系统缺乏资源的时候会将它杀死(它会比暂停状态的活动先杀死)。

4)重启:如果一个活动在处于停止或者暂停的状态下,系统内存缺乏时会将其结束(finish)或者杀死(kill)。在这种非正常情况下,系统在杀死或者结束之前会调用onSaveInstance()方法来保存信息;与此同时,当Activity被移动到前台时,重新启动该Activity并调用onRestoreInstance()方法加载所保留的信息,以保持原有的状态。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值