苏州大学Android【韩冬】期末复习

合集下载

安卓期末重点复习资料(EK-绝密版)

安卓期末重点复习资料(EK-绝密版)

1、p4开放手机联盟成员①电信运营商②半导体芯片商③手机硬件制造商④软件厂商⑤商品化公司2、p9Android具有自己的运行时和虚拟机,与java和.Net 运行时不同,Android运行时还可以管理进程的生命周期。

Eclipse3、p104、p12在开始下载和安装Eclipse之前,应该首先确认开发主机上是否已经安装了Java 运行环境JRE5、p26DDMS①Android系统中内置的调试工具②监视Android系统中进程、堆栈信息,查看logcat日志,实现端口转发服务和屏幕截图功能,模拟器电话呼叫和SMS短信,以及浏览Android模拟器文件系统等③启动文件:<Android SDK> /tools/ddms.bat(1)DDMS中的设备管理器同时检控多个Android模拟器,显示每个模拟器中所以正在运行的进程提供屏幕截图功能(2)DDMS中的模拟器控制器控制Android模拟器的网络速度和延迟,模拟语音和SMS短信通信网络速率:GSM、HSCSD、PRS、EDGE、MTS、DPA和全速率网络延迟:GPRS、EDGE、UMTS和无延迟(3)DDMS中的模拟器控制器电话呼入显示SMS短信显示(4)DDMS中的文件浏览器上传、下载和删除Android内置存储器上的文件显示文件和目录的名称、权限、建立时间等(5)DDMS中的日志浏览器(LogCat)浏览Android系统、Dalvik虚拟机或应用程序产生的日志信息,有助于快速定位应用程序产生的错误6、p36根目录包含四个子目录:src、assets、res和gen,一个库文件android.jar,以及两个工程文件Androidmanifest.xml和default.properties(1)src目录是源代码目录,所有允许用户修改的java文件和用户自己添加的java文件都保存在这个目录中(2)gen目录是1.5版本新增的目录,用来保存ADT自动生成的java文件,例如R.java或AIDL文件(3)assets目录用来存放原始格式的文件,例如音频文件、视频文件等二进制格式文件。

android考试复习题

android考试复习题

android考试复习题Android考试复习题涵盖了多个方面,包括基础知识、开发工具、UI 设计、API使用、性能优化等。

以下是一些关键点和问题,用以帮助复习:1. 基础知识- 什么是Android操作系统?- Android的架构层有哪些?- 解释Android的Activity生命周期。

2. 开发环境- 描述如何设置Android开发环境。

- 什么是Android Studio?- 解释Android SDK和NDK的区别。

3. 布局与UI设计- 列出常用的Android布局类型。

- 如何使用ConstraintLayout进行复杂布局设计?- 解释Android的Material Design原则。

4. Activity与Fragment- 什么是Activity和Fragment?- 描述Activity和Fragment之间的交互方式。

- 如何实现Activity的启动模式?5. Intent与Broadcast Receiver- 解释Intent的用途和类型。

- 如何使用Broadcast Receiver监听系统广播?6. 数据存储- Android支持哪些数据存储方式?- 解释SQLite数据库的基本操作。

- 如何使用SharedPreferences存储简单数据?7. 网络编程- 如何在Android中实现网络请求?- 解释HTTP协议的基本概念。

- 描述JSON和XML数据格式的使用。

8. 多媒体处理- 如何在Android中播放音频和视频?- 解释Camera API的基本使用方法。

9. 服务与后台任务- 解释Service和IntentService的区别。

- 如何使用WorkManager处理后台任务?10. 性能优化- 描述内存泄漏的原因和解决方法。

- 如何优化应用的启动时间?- 解释Android的Profiler工具的使用。

11. 安全性- 解释Android的安全机制,如权限系统。

android 复习题

android 复习题

android 复习题Android 复习题Android操作系统是目前全球最流行的移动操作系统之一,它的广泛应用使得对Android的了解和掌握成为了许多人的必备技能。

为了帮助大家巩固对Android的知识,下面将提供一些常见的Android复习题。

希望这些问题能够帮助你回顾和加深对Android的理解。

1. 什么是Android操作系统?Android操作系统是由Google开发的基于Linux内核的开源移动操作系统。

它为移动设备提供了一个完整的软件堆栈,包括操作系统、中间件和应用程序接口(API),以便开发者可以创建各种各样的应用程序。

2. 请简要说明Android的四个主要组件是什么?Android的四个主要组件是Activity、Service、BroadcastReceiver和ContentProvider。

- Activity是用户界面的一部分,负责管理用户与应用程序之间的交互。

- Service是在后台执行长时间运行操作的组件,它没有用户界面。

- BroadcastReceiver是用于接收和响应系统广播消息的组件。

- ContentProvider允许应用程序之间共享数据,它提供了一种统一的数据访问接口。

3. 什么是Intent?Intent是在Android应用程序之间传递数据的一种机制。

它可以用于启动Activity、启动Service、发送广播和传递数据等操作。

Intent可以包含数据(Extras)和目标组件的信息,以便系统可以根据Intent的内容选择合适的组件来处理。

4. 请解释什么是Android的布局?Android的布局是指定义和排列用户界面元素的方式。

Android提供了多种布局类型,包括线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)等。

开发者可以根据需要选择合适的布局类型,并使用布局属性来调整元素的位置和大小。

Android技术基础,大学期末考试题复习

Android技术基础,大学期末考试题复习

Android一、选择题1. 下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是?(选择一项) ( D)A. DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念.B.DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux中的一个进程,所以说不是一个概念C.DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM 不一定都是在Linux 中的一个进程,所以说不是一个概念.D.DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM 都是在Linux 中的一个进程,所以说可以认为是同一个概念.2.下列选项哪个不是Activity启动的方法?(选择一项)( A)A. goToActivityB. startActivityC. startActivityFromChildD. startActivityForResult4.下列哪一个不属于Activity的生命周期方法(选择一项)( A)A. onIniB. onStartC. onStopD. onPause5.对于XML布局文件中的视图控件,layout_width属性的属性值不可以是什么?(选择一项) ( D)A. match_parentB. fill_parentC. wrap_contentD. match_content6.对一些资源以及状态的操作保存,最好是保存在Activity生命周期的哪个函数中进行?(选择一项) ( A)A. onStartB. onPauseC. onCreateD. onResume7.关于视图控件的常用事件Android.docx描述中,不正确的是?(选择一项) ( A)A. Click事件只能使用在按钮上,表示按钮的点击动作B.当TextView类视图控件失去焦点或获得焦点时,将触发FocusChange事件C. 当单选框中某一选项被选择时,将触发CheckedChange事件D.当多选框中某一选项被选择时,将触发CheckedChange事件题目8.以下关于Android应用程序的目录结构描述中,不正确的是(选择一项) ( D)A. src目录是应用程序的主要目录,由Java类文件文件组成B. assets目录是原始资源目录,该目录中的内容将不会被R类所引用C. res目录是应用资源目录,该目录中的所有资源内容都会被R类所索引D. AndroidManifest.xml文件是应用程序目录清单文件,该文件由ADT自动生成,不需要程序员手动修改9.下列关于XML布局文件在Java代码中被引用的说明中,不正确的是(选择一项) ( B)A.在Activity中,可以使用findViewById( )方法,通过资源id,获得指定视图元素B.在Activity中,可以使用R.drawable-system.***方式引用Android系统所提供的图片资源C. 在Activity中,可以使用setContentView( )方法,确定加载哪一个布局文件D.可以使用View类的findViewById( )方法,获得当前View对象中的某一个视图元素10.下列关于Android布局文件常用的长度/大小单位的描述中,不正确的是(选择一项) ( C)A. dp是设备独立像素,不依赖于设备,是最常用的长度单位B. sp代表放大像素,主要用于字体大小的显示C. px是像素单位,在不同的设备上显示效果相同,因此推荐在布局中使用该单位D.在设置空间长度等相对距离时,推荐使用dp单位,该单位随设备密度的变化而变化11.下列哪一个选项不属于Android中预定义的布局方式(选择一项)( A)A. TabLayoutB. RelativeLayoutC. AbsoluteLayoutD. LinearLayout13.下列哪一款移动设备搭载的是Android平台?(选择一项)( A)A. NOKIA手机B.小米手机C. iPhone手机D. iPad14.下列关于ListView使用的描述中,不正确的是?(选择一项)( B)A.要使用ListView,必须为该ListView使用Adpater方式传递数据B.要使用ListView,该布局文件对应的Activity必须继承ListActivityC. ListView中每一项的视图布局既可以使用内置的布局,也可以使用自定义的布局方式D. ListView中每一项被选中时,将会触发ListView对象的ItemClick事件16.在android 中使用Menu 时可能需要重写的方法有?(选择两项)( AB)A. onOptionsItemSelected()B. onCreateOptionsMenu()C. onItemSelected()D. onCreateMenu()17.下列关于内存回收的说明,哪个是正确的?(选择一项)( C)A.程序员必须创建一个线程来释放内存B.内存回收程序允许程序员直接释放内存C.内存回收程序负责释放无用内存D.内存回收程序可以在指定的时间释放内存对象18.Math.round(11.5)等于多少(). Math.round(-11.5)等于多少?(选择一项) ( C)A. 11 ,-11B. 11 ,-12C. 12 ,-11D. 12 ,-1219.下列程序段:void complicatedexpression_r(){int x=20,y=30;boolean b;b=x>50&&y>60||x>50&&y60||x(选择一项) ( D)A. 1B. 0C. TRUED. FALSE21.android 关于service生命周期的onCreate()和onStart()说法正确的是?(选择两项) ( BD)A.如果service已经启动,将先后调用onCreate()和onStart()方法B.当第一次启动的时候先后调用onCreate()和onStart()方法C.当第一次启动的时候只会调用onCreate()方法D.如果service已经启动,只会执行onStart()方法,不再执行onCreate()方法26.下列哪个是AbsoluteLayout(绝对布局) 中特有的属性?(B)A. android:layout_heightB. android:layout_xC. android:layout_aboveD. android:layout_toRightOf31.android 是如何组织Activity 的?(选择一项) ( A)A.以栈的方式组式ActivityB.以队列的方式组织ActivityC.以树形方式组织ActivityD.以链式方式组织Activity32.android 中下列属于Intent的作用的是?(选择一项)( D)A.处理一个应用程序整体性的工作B.是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失C.实现应用程序间的数据共享D.可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带33.onPause 什么时候调用?(选择一项) ( B)A.当界面启动时B.当onCreate 方法被执行之后C.当界面被隐藏时D.当界面重新显示时34.在Activity 中,如何获取service 对象?(选择一项)( D)A.可以通过直接实例化得到。

android复习题库

android复习题库

android复习题库Android复习题库Android操作系统是目前全球最流行的移动操作系统之一。

它的广泛应用使得对Android开发的需求日益增长。

为了应对这一需求,许多开发者和学习者都希望能够找到一些好的复习题库来提高他们的技能。

本文将介绍一些常见的Android复习题库,帮助读者更好地准备Android开发的考试或面试。

1. Java基础知识在学习Android开发之前,了解Java语言的基础知识是必不可少的。

以下是一些与Android开发相关的Java复习题:1.1 什么是Java虚拟机(JVM)?它的作用是什么?1.2 请解释Java中的继承和多态的概念。

1.3 什么是Java接口?它与抽象类有什么区别?1.4 请解释Java中的异常处理机制。

1.5 什么是Java的反射机制?它有什么用途?2. Android基础知识Android开发的核心是对Android操作系统的理解和掌握。

以下是一些与Android基础知识相关的复习题:2.1 请解释Android的四大组件是什么?并举例说明它们的用途。

2.2 什么是Activity生命周期?请解释每个生命周期方法的作用。

2.3 请解释Android的布局文件是什么?它有哪些常见的布局类型?2.4 什么是Intent?请解释显式Intent和隐式Intent的区别。

2.5 请解释Android的Fragment是什么?它有什么作用?3. Android高级知识除了基础知识外,了解一些Android的高级知识也是非常重要的。

以下是一些与Android高级知识相关的复习题:3.1 请解释Android的线程和进程的概念。

3.2 什么是Android的异步任务(AsyncTask)?它有什么作用?3.3 请解释Android的数据存储选项,例如Shared Preferences、SQLite数据库和文件存储。

3.4 什么是Android的网络通信机制?请解释HTTP请求和响应的过程。

android考试复习题

android考试复习题

android考试复习题Android考试复习题Android是目前最流行的移动操作系统之一,它的广泛应用使得对Android开发的需求越来越大。

如果你正在准备Android考试,那么掌握一些常见的复习题是非常重要的。

本文将为你提供一些Android考试复习题,帮助你巩固知识并提高你的准备水平。

一、基础知识1. Android是哪个公司开发的?2. 什么是Android SDK?3. Android应用的基本组成部分是什么?4. 什么是Activity?5. 什么是Intent?6. 什么是布局文件?二、界面设计1. 请列举几种常见的布局文件类型。

2. LinearLayout和RelativeLayout有什么区别?3. 什么是ListView?4. 什么是RecyclerView?5. 什么是Fragment?三、数据存储1. 请列举几种常见的数据存储方式。

2. 什么是Shared Preferences?3. 什么是SQLite数据库?4. 什么是Content Provider?四、网络通信1. 请列举几种常见的网络通信方式。

2. 什么是HTTP请求?3. 什么是JSON?4. 请简要说明如何在Android应用中进行网络请求。

五、多媒体处理1. 什么是MediaPlayer?2. 什么是Camera API?3. 什么是SurfaceView?4. 请简要说明如何在Android应用中播放音频文件。

六、性能优化1. 什么是ANR?2. 请列举几种常见的性能优化方法。

3. 什么是内存泄漏?4. 请简要说明如何进行内存优化。

七、安全性1. 什么是ProGuard?2. 什么是混淆?3. 什么是HTTPS?4. 请简要说明如何保护Android应用的安全性。

八、其他1. 什么是Gradle?2. 什么是Android Studio?3. 请简要说明如何创建一个新的Android项目。

4. 请简要说明如何在Android应用中添加第三方库。

Android复习资料

Android复习资料

(带答案)A n d r o i d复习资料(共17页)-本页仅作为预览文档封面,使用时请删除本页-选择题1. 下面不是Android四大组件之一的( B )A. Activity C. Service D. ContentProvider2. 下面关于广播叙述错误的是(A)A. 广播是Android四大组件之一B. BroadcastReceiver有两种注册方式,静态注册和动态注册C. 静态注册需要在中配置D. 动态注册需要在应用退出时候接触广播的注册。

3. 下面关于BroadcastReceiver错误的是(B):A. BroadcastReceiver有两种注册方式,静态注册和动态注册。

B. BroadcastReceiver必须在AndroidMainfest文件中声明C. BroadcastReceiver的使用,一定有一方发送广播,有一方监听注册广播,onReceive方法才会被调用。

D. 广播发送的Intent都是隐式启动。

4. 下面关于谁先接收广播顺序错误的是(B)A. 有序广播,优先级高的先接收B. 有序广播,同优先级的动静态广播接收器,静态优先于动态。

C. 有序广播,同优先级的动态广播接收器,先注册的大于后注册的。

D. 普通广播时,无视优先级,动态广播接收器优先于静态广播接收器5. 下面关于广播说法错误的是(B)A. 广播分为有序广播和无序广播B. 使用abortBroadcast方法可以中断所有广播的传递。

C. 广播注册方式分为动态和静态D. sendOrderBroadcast用来向系统广播有序事件,sendBroadcast()是用来广播无序事件。

6. 下列关于Intent启动组件说法错误的是(C)( ) B. startService( ) C. startBroadcastReceiver() ()7. 对于广播的发送,Intent的启动方式是(B)A.显式启动B. 隐式启动C. A和B都可以D. 以上说法都不正确。

(完整word版)AndroidAPP开发期末复习资料

(完整word版)AndroidAPP开发期末复习资料

1。

短信的内容提供者是( )A。

ContactProviderB. MessageProviderC. SmsProviderD. TelephonyProvider2.以下是Android中用于xml解析方式的是( )。

A。

SAX B. DOM C. XmlPullParser D。

Juint3.下列选项中,关于Bitmap类描述正确的是()。

A。

Bitmap类表示画 B. Bitmap类代表画布 C。

Bitmap类是最常用的绘图类D。

Bitmap类表示位图工厂4。

Dalvik虚拟机是基于( )的架构。

A.栈B。

堆 C. 寄存器 D. 存储器5.在Android UI开发中,常见的刮刮卡是通过( )实现的。

A。

FrameLayout B。

LinearLayout C。

RelativeLayout D.TableLayout6.注册一个短信到来的广播事件需要在清单文件配置什么权限()。

A. 〈uses-permission android:name="android。

permission。

SMS"/>B.<uses—permissi onandroid:name=”android。

permission。

SEND_SMS"/〉C。

〈uses—permissionandroid:name=”android.permission.RECEIVE_SMS”/〉D。

<uses-permission android:name=”android。

permission。

RECEIVE_SEND_SMS”/〉7.关于服务的创建说法错误的是()。

A。

Android中创建服务需要继承Service类 B。

Android 中的服务需要在清单文件配置. C。

Android 中的服务可以理解成是在后台运行且没有界面的activity。

D。

Android中定服务能做的事情完全可以开一个子线程替代。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Android应用开发》复习题:1.Android的体系结构是怎样的?请简要加以说明。

Android 的系统架构采用了分层架构的思想。

从上层到底层共包括四层:应用层、应用框架层、系统运行库层、 Linux 内核层。

2.Android程序结构是怎样的?请简要加以分析。

●src目录:java 源代码●gen目录:BuildConfig.java、R.java●res目录:res 目录是资源目录,可以存放应用使用到的各种资源,如 XML 界面文件、图片、数据等。

●assets目录:assets 资源目录一般可用于存放 html 文件、数据库文件、 javascript 文件等,还有原始格式的文件.●AndroidManifest.xml:列出了应用程序提供的功能,开发好的各种组件需要在此文件中进行配置,当应用使用到系统内置的应用还需在此文件中声明使用权限3.Handler消息传递机制是怎样的?试以“计时器”的编程举例加以说明。

首先需要在主线程当中创建一个 Handler 对象,并重写handleMessage()方法。

然后当子线程中需要进行 UI 操作时,就创建一个 Message 对象,并通过 Handler 将这条消息发送出去。

之后这条消息会被添加到 MessageQueue 的队列中等待被处理,而 Looper 则会一直尝试从MessageQueue 中取出待处理消息,最后分发回 Handler的 handleMessage()方法中。

由于Handler 是在主线程中创建的,所以此时 handleMessage()方法中的代码也会在主线程中运行,于是我们在这里就可以安心地进行 UI 操作了。

一条 Message 经过这样一个流程的辗转调用后,也就从子线程进入到了主线程,从不能更新 UI 变成了可以更新 UI,整个异步消息处理的核心思想也就是如此。

4.什么是进程内服务?请编程加以说明。

在同一个进程下调用的服务,(通常情况下)即在一个应用程序下的服务。

Service 的启动有两种方式: context.startService() 和 context.bindService()。

新建一个MyService继承自Service,并重写父类的onCreate()、onStartCommand()和onDestroy()方法。

Service与activity通讯:context.bindService()我们首先创建了一个ServiceConnection的匿名类,在里面重写了onServiceConnected()方法和onServiceDisconnected()方法,这两个方法分别会在Activity与Service建立关联和解除关联的时候调用。

bindService()方法接收三个参数,第一个参数就是刚刚构建出的Intent对象,第二个参数是前面创建出的ServiceConnection的实例,第三个参数是一个标志位,这里传入BIND_AUTO_CREATE表示在Activity和Service建立关联后自动创建Service,这会使得MyService中的onCreate()方法得到执行,但onStartCommand()方法不会执行。

然后如何我们想解除Activity和Service之间的关联怎么办呢?调用一下unbindService()方法就可以了,这也是Unbind Service按钮的点击事件里实现的逻辑。

5.什么是跨进程服务?请编程加以说明。

通过一个应用程序(客户端)的Activity调用另一个应用程序(服务端)的Service为跨进程服务。

由于每个应用程序都运行在自己的进程空间,并且可以从应用程序 UI 运行另一个服务进程,而且经常会在不同的进程间传递对象。

在 Android 平台,一个进程通常不能访问另一个进程的内存空间,所以要想对话,需要将对象分解成操作系统可以理解的基本单元,并且有序的通过进程边界。

Android 提供了 AIDL 工具来处理这项工作。

在 Android 中,如果需要在不同进程间实现通信,就需要用到 AIDL 技术去完成。

AIDL 是一种接口定义语言,编译器通过*.aidl 文件的描述信息生成符合通信协议的 Java代码,无需自己去写这段繁杂的代码,只需要在需要的时候调用即可,通过这种方式我们就可以完成进程间的通信工作。

在 Android 中,每个应用程序都有自己的进程,当需要在不同的进程之间传递对象时,该如何实现呢? 显然, Java 中是不支持跨进程内存共享的。

因此要传递对象,需要把对象解析成操作系统能够理解的数据格式,以达到跨界对象访问的目的。

我们只是修改了ServiceConnection中的代码。

可以看到,这里首先使用了MyAIDLService.Stub.asInterface()方法将传入的IBinder对象传换成了MyAIDLService对象,接下来就可以调用在MyAIDLService.aidl文件中定义的所有接口了。

ClientTest中的Activity如果想要和MyService建立关联其实也不难,首先需要将MyAIDLService.aidl文件从ServiceTest项目中拷贝过来,注意要将原有的包路径一起拷贝过来,完成后项目的结构如下图所示:这里先是对MyAIDLService.Stub进行了实现,重写里了toUpperCase()和plus()这两个方法。

这两个方法的作用分别是将一个字符串全部转换成大写格式,以及将两个传入的整数进行相加。

然后在onBind()方法中将MyAIDLService.Stub的实现返回。

这里为什么可以这样写呢?因为Stub其实就是Binder的子类,所以在onBind()方法中可以直接返回Stub的实现。

我们实现了 IPerson.Stub 这个抽象类的 hello 方法,然后再 onBind(Intent)方法中返回我们的 stub 实例,这样一来调用方获取的 IPerson.Stub 就是我们的这个实例, hello 方法也会按照我们的期望那样执行。

我们要重写 ServiceConnection 中的 onServiceConnected 方法将IBinder 类型的对象转换成我们的IPerson 类型。

我们再通过服务端Service 定义的“ android.intent.action.AIDLService”这个标识符来绑定我们所需要的服务,这样客户端和服务端就实现了通信的连接,我们就可以调用 IPerson 中的 hello 方法了。

使用了MyAIDLService.Stub.asInterface()方法将传入的IBinder对象传换成了MyAIDLService 对象,接下来就可以调用在MyAIDLService.aidl文件中定义的所有接口了。

IPerson 接口中的抽象内部类Stub 继承android.os.Binder 类并实现IPerson 接口,其中比较重要的方法是asInterface(IBinder)方法,该方法会将IBinder 类型的对象转换成IPerson 类型,必要的时候生成一个代理对象返回结果。

6.如何发送广播?请编程加以说明。

因此新建一个MyBroadcastReceiver 继承自BroadcastReceiver,代码如下所示:public class MyBroadcastReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {Toast.makeText(context, "received in MyBroadcastReceiver",Toast.LENGTH_SHORT).show();}}●然后在AndroidManifest.xml 中对这个广播接收器进行注册●然后修改 MainActivity中的代码,如下所示:public class MainActivity extends Activity {……@Overridep rotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);Button button = (Button) findViewById(R.id.button);button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent("com.example.broadcasttest.MY_BROADCAST");sendBroadcast(intent);}});……}……}可以看到,我们在按钮的点击事件里面加入了发送自定义广播的逻辑。

首先构建出了一个 Intent 对象,并把要发送的广播的值传入,然后调用了 Context 的 sendBroadcast()方法将广播发送出去,这样所有监听 com.example.broadcasttest.MY_BROADCAST 这条广播的广播接收器就会收到消息。

此时发出去的广播就是一条标准广播。

7.如何接收系统广播消息?请编程加以说明。

其实只需要新建一个类,让它继承自 BroadcastReceiver,并重写父类的 onReceive()方法就行了。

这样当有广播到来时, onReceive()方法就会得到执行,具体的逻辑就可以在这个方法中处理。

registerReceiver(BroadcastReceiver, intentFilter);--oncreate() unregisterReceiver(BroadcastReceiver);--ondestroy()8.什么是观察者模式?观察者模式的使用场景是怎样的?观察者模式的优缺点是什么?试编程加以说明。

●定义:定义对象间一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新●使用场景:➢关联行为场景。

注意的是,关联行为是可拆分的,而不是组合关系。

➢事件多级触发场景➢跨系统的消息交换场景,如消息队列的处理机制●优点:➢观察者和被观察这之间是抽象耦合的➢建立一套触发机制●缺点:➢需要考虑下开发效率和运行效率9.什么是装饰模式?装饰模式的使用场景是怎样的?装饰模式的优缺点是什么?试编程加以说明。

相关文档
最新文档