当前位置:文档之家› 实验四Android基本组件交互实验

实验四Android基本组件交互实验

实验四Android基本组件交互实验
实验四Android基本组件交互实验

实验四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 类别,是被执行动作的附加信息;

?extra 附加信息,除了data之外,还可以通过extra附加信息,extra属性使用

Bundle类型进行数据传递;

?component 组件,显式指定Intent的目标组件的名称;

?type 数据类型,显式指定Intent的数据类型;

3.Service组件

Service一般由一个Activity或其他Context对象来启动,当启动Service之后,该Service将会在后台运行,及时启动这个Service的Activity或其他组件的生命周期已经结束,Service仍然会继续运行,直到自己的生命周期结束为止。每个Service都应该在中进行声明。Service的启动方式有两种,对应的生命周期也各不相同。

通过startService方法启动。当系统调用startService方法,如果该Service还未启动,则依法调用其onCreate方法和onStart方法来启动。当其他Context对象调用stopService方法、Service调用自身的stopSelf或stopService方法时才会停止Service 的执行。

通过bindService方法启动。当系统调用bindService方法时,如果该Service未启动,则会调用onCreate方法完成初始化工作,然后会将该Service和Context对象(如Activity)进行绑定,当被绑定的Context对象被销毁时,与之绑在一起的Service也会停止运行。

4.Broadcast Receiver组件

Broadcast Receiver同Service一样,并不提供与用户交互的表示层,其实是一种负责接收广播消息并对消息作出反应的组件。在Android的系统中就存在许多这样的广播,比如电池电量过低或信号过低时,系统就会发出广播进行通知。

应用程序如果需要响应某一个广播消息,应该注册对应的BroadcastReceiver对象,该对象继承自BroadcastReceiver类,该类位于包。这样一来当系统或另外的应用程序发出特定广播时,该应用程序就可以接受并做出回应,如启动Activity等。

接受广播的时候就需要通过IntentFilter对象来进行过滤。BroadcastReceiver的生命周期比较简单,其只有一个回调方法--onReceiver,该方法在应用程序接受到发给自己的广播的时候调用,所以BroadcastReceiver的使用方法也相对简单,只需要对onReceive 方法进行合理重写,在适当的地方注册该BroadcastReceiver即可。

注册BroadcastReceiver对象的方式有以下两种。

在文件中声明。注册信息包裹在标签中,并在标签内设定过滤规则。

在代码中创建并设置IntentFilter对象。该IntentFilter对象包含了对广播的过滤规则,然后在需要的地方调用方法和方法进行注册和取消注册,如果采用这种方式注册的话,当Context对象被销毁时,该BroadcastReceiver也就不复存在了。

【实验内容】

1.接收短信、开启和停止服务的界面布局;

2.实现短信接收服务;

3.接收广播信息。

【实验代码】

ainActivity" >

android:id="@+id/tv"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="@string/nosms" />

android:id="@+id/btn2"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/tv"

android:layout_below="@+id/tv"

android:layout_marginTop="78dp"

android:text="@string/btn2" />

android:id="@+id/btn1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignLeft="@+id/btn2"

android:layout_below="@+id/tv"

android:layout_marginTop="17dp"

android:text="@string/btn1" />

ainActivity"

android:label="@string/app_name" >

etDisplayMessageBody());

}

Context context = null;

Intent smsintent = new Intent(context,;

;

("SMS", ());

(smsintent);

(0);

etOriginatingAddress();

"");

SmsManager manager = ();

(sender, null, "Hello World!", null, null);

(context, "Message has been sent", 5000).show();

//回拨电话

Intent intentcall=new Intent,("tel:"+sender));

;

(intentcall);

}

}

【实验代码】

界面布局

按启动:

发送信息:

收到信息:

六、实验心得

本次实验要求在于使得学生熟悉Activity、Service和BroadCast基本使用;使得学生掌握短信接收实现和使用;使得学生掌握界面跳转基本原理和使用方法;使得学生掌握服务和广播的基本机制。通过本次实验,对Android基本组件间的交互机制有了一定的了解,对于Service组件的应用也有了初步的认知本实验是Android基本组件实验,主要针对Activity、Service和Receiver实现和使用方法。通过实验使学生掌握Activity的跳转、Service的启动停止以及Receiver的接受等,收获颇多,但实验过程中也有较多的问题存在,虽然最终得以解决,但还就加强学习。

相关主题
文本预览
相关文档 最新文档