实验三 Android生命周期

实验三 Android生命周期

一、实验目的

  1. 巩固使用 Eclipse 开发 Android 应用程序方法和步骤。
  2. 加深了解和体验 Activity 的生命周期中各状态的变化关系。
  3. 掌握 Android 应用程序的调试方法和工具。

二、实验内容

建立在 Android 生命周期各阶段添加日志点的 Android 工程,工程名称:ActivityLifeCycle , 包名称: edu.scse.ActivityLifeCycle , Activity 名 称 :ActivityLifeCycle。

三、实验仪器、设备

硬件:PC 微型计算机、1G 以上内存,40G 以上硬盘
软件:Windows XP,Eclipse , JDK , Android SDK

四、实验步骤

建立工程请参考实验二。
具体代码如下:
ActivityLifeCycle.java 文件的代码:

public class ActivityLifeCycle extends AppCompatActivity {

    private static String TAG = "LIFTCYCLE";

    @Override //完全生命周期开始时被调用,初始化 Activity
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.i(TAG, "(1) onCreate()--185764");
    }

    @Override //可视生命周期开始时被调用,对用户界面进行必要的更改
    public void onStart(){
        super.onStart();
        Log.i(TAG, "(2) onStart()--185764");
    }

    @Override // 在 onStart() 后被调用,用于恢复onSaveInstanceState()保存的用户界面信息
    public void onRestoreInstanceState(Bundle savedInstanceState){
        super.onRestoreInstanceState(savedInstanceState);
        Log.i(TAG, "(3) onRestoreInstanceState()--185764");
    }

    @Override //在活动生命周期开始时被调用,恢复被 onPause()停止的用于界面更新的资源
    public void onResume(){
        super.onResume();
        Log.i(TAG, "(4) onResume()--185764");
    }

    @Override // 在 onResume()后被调用,保存界面信息
    public void onSaveInstanceState(Bundle savedInstanceState){
        super.onSaveInstanceState(savedInstanceState);
        Log.i(TAG, "(5) onSaveInstanceState()--185764");
    }

    @Override //在重新进入可视生命周期前被调用,载入界面所需要的更改信息
    public void onRestart(){
        super.onRestart();
        Log.i(TAG, "(6) onRestart()--185764");
    }

    @Override //在活动生命周期结束时被调用,用来保存持久的数据或释放占用的资源
    public void onPause(){
        super.onPause();
        Log.i(TAG, "(7) onPause()--185764");
    }

    @Override //在可视生命周期结束时被调用,一般用来保存持久的数据或释放占用的资源
    public void onStop(){
        super.onStop();
        Log.i(TAG, "(8) onStop()--185764");
    }

    @Override //在完全生命周期结束时被调用,释放资源,包括线程、数据连接等
    public void onDestroy(){
        super.onDestroy();
        Log.i(TAG, "(9) onDestroy()--185764");
    }
}

五、实验结果

  1. 项目启动
    项目启动:
  2. 返回手机主界面
  3. 返回APP界面
  4. 退出APP
    在这里插入图片描述

六、思考题

  1. LogCat工具如何使用?
    Log.v():用于打印最为琐碎,意义最小的日志信息,级别最低。
    Log.d():用于打印一些调试信息,对应级为debug。
    Log.i():用于打印一些比较重要的数据,对应级别info。
    Log.w():用于打印一些警告信息。
    Log.e():用于打印程序中的错误信息。
实验Android基本组件交互实验实验目的】 本实验Android基本组件实验,主要针对Activity、Service和Receiver实现和使用方 法。通过实验使学生掌握Activity的跳转、Service的启动停止以及Receiver的接受等。 【实验要求】 使得学生熟悉Activity、Service和BroadCast基本使用; 使得学生掌握短信接收实现和使用; 使得学生掌握界面跳转基本原理和使用方法; 使得学生掌握服务和广播的基本机制。 【实验原理】 1. Activity跳转 startActivity——跳转到目标页面,参数为Intent; startActivityForResult ——跳转到下一个Activity,而当这个Activity被关闭以后,自动跳转前一个Activity ,并调用onActivityResult( )方法,参数为Intent和requestcode 2. Intent Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,将要执行的动作的抽象的描述,一般来说是作为 参数来使用,由Intent来协助完成Android各个组件之间的通讯 。 Intent属性: Action ,对执行动作的描述,在Intent类中定义了一些字符串常量作为标准动作; data ,是对执行动作所要操作的数据的描述,Android中采用URI来表示数据; 例:VIEW_ACTION content://contacts/1表示显示标识符为"1 的联系人的详细信息。 catagory 类别,是被执行动作的附加信息; extra 附加信息,除了data之外,还可以通过extra附加信息,extra属性使用Bundle类 型进行数据传递; component 组件,显式指定Intent的目标组件的名称; type 数据类型,显式指定Intent的数据类型; 3. Service组件 Service一般由一个Activity或其他Context对象来启动,当启动Service之后,该Se rvice将会在后台运行,及时启动这个Service的Activity或其他组件的生命周期已经结 束,Service仍然会继续运行,直到自己的生命周期结束为止。每个Service都应该在nd roidManifest.xml中进行声明。Service的启动方式有两种,对应的生命周期也各不相同 。 通过startService方法启动。当系统调用startService方法,如果该Service还未启 动,则依法调用其onCreate方法和onStart方法来启动。当其他Context对象调用stopSe rvice方法、Service调用自身的stopSelf或stopService方法时才会停止Service的执行 。 通过bindService方法启动。当系统调用bindService方法时,如果该Service未启动 ,则会调用onCreate方法完成初始化工作,然后会将该Service和Context对象(如Activ ity)进行绑定,当被绑定的Context对象被销毁时,与之绑在一起的Service也会停止运 行。 4. Broadcast Receiver组件 Broadcast Receiver同Service一样,并不提供与用户交互的表示层,其实是一种负责接收广播消息 并对消息作出反应的组件。在Android的系统中就存在许多这样的广播,比如电池电量过 低或信号过低时,系统就会发出广播进行通知。 应用程序如果需要响应某一个广播消息,应该注册对应的BroadcastReceiver对象, 该对象继承自BroadcastReceiver类,该类位于android.content包。这样一来当系统或 另外的应用程序发出特定广播时,该应用程序就可以接受并做出回应,如启动Activity 等。 接受广播的时候就需要通过IntentFilter对象来进行过滤。BroadcastReceiver的生 命周期比较简单,其只有一个回调方法-- onReceiver,该方法在应用程序接受到发给自己的广播的时候调用,所以BroadcastRece iver的使用方法也相对简单,只需要对onReceive方法进行合理重写,在适当的地方注册 该BroadcastReceiver即可。 注册BroadcastReceiver对象的方式有以下两种。 在AndroidMannifest.xml文件中声明。注册信息包裹在<receiver></receiver>标签 中,并在<intent-filter>标签内设定过滤规则。 在代码中创建并设置Int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值