AnjoyoAndroid02章节考试题

更新时间:2023-10-16 05:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

AnjoyoAndroid第二章考试题

一、选择题:(共20题,每题3分)

1. 下列关于Activity的说法正确的一个选项是( C )。

① Activity是Android的四大组件之一。

② Activity在实现中通常作为一个Java类出现。 ③ Activity是一个用来提供用户交互界面的组件。

④ Activity使一个应用程序的指定数据集提供给其它应用程序。

⑤ 当一个Activity启动另一个Activity时,就需要使用到Intent,它起到媒介的作用。 ⑥ 每一个Android应用都必须要有一个叫做“MainActivity”的入口Activity。 ⑦ 入口Activity会作为初始界面在应用关闭时再展示给用户。 ⑧ 每个Activity都可以启动另一个Activity。 A、①③④⑥⑧ B、②⑤⑥⑦⑧ C、①②③⑤⑧ D、①②③④⑦

2. 下列关于使用一个Activity说法错误的一个选项是( A )。

① 需要首先实现一个继承自Activity的子类。 ② 重写父类中的一些方法。

③ 一般都会重写onCreate(),这个方法是在Activity被关闭时自动调用的。 ④ 重写的onCreate()方法是具有参数的,也有返回值。 ⑤ onCreate()方法的参数是一个Bundle类型的对象。 ⑥ Bundle类与Map一样,是一个key-value类型。

⑦ 在四大组件之间传递数据时,Bundle常被用来存储数据。 ⑧ Bundle的key只能为String,而value则没有限制。

⑨ Bundle类型的参数用来处理Activity状态信息的保存与恢复。 A、①②⑤⑥⑧⑨ B、②④⑤⑥⑦⑧ C、①③④⑤⑥⑧ D、①②③⑦⑧⑨ 3. 下列关于Activity描述不正确的是( B )。

A、每一个Activity都必须在AndroidManifest.xml文件中进行配置。 B、关于Activity生命周期的各个方法相同点就是它们自动调用的时机不同。 C、我们只能使用鼠标选择这种方式完成配置,而不能用手写代码这种方式完成配置。 D、Activity的生命周期构成方法有onCreate()、onStart()、onResume()、onPause()、onStop()、onDestroy()和onRestart()七种。 4. 在Activity生命周期中的各个方法,它们在不同状态下的调用顺序不正确的一个选项是

( D )。

① 初次启动一个Activity时的执行过程是:依次执行了onCreate() 、onStart() 和onResume()方法。

② 当Activity启动后,点击“返回”按钮,这时Activity的执行顺序是:onPause() -> onStop() -> onStop()。

③ 启动一个Activity时的执行过程是:依次执行了onCreate() 、onStart() 和onResume()方法。

④ 在Activity被启动之后,点击Home按钮,这时Activity的执行顺序是:onPause() -> onStop()。

⑤ 点击Home按钮后,系统回到桌面,然后我们再找到这个应用并打开,这时Activity

5.

6.

7.

8.

9.

的执行顺序是:onRestart() -> onCreate() -> onStart() -> onResume()。

⑥ 重新启动一个应用,在它被启动后,先点击“拨打电话”按钮,之后再点击“返回”按钮,这时Activity的执行顺序是:onPause() -> onStop() -> onRestart() -> onStart() -> onResume()。 A、①②③⑥ B、①④⑤⑥ C、②③④⑤ D、①③④⑥ 对于Activity的四种基本状态描述不正确的是( C )。

A、运行态(Running):Activity处于屏幕最前端,被用户可见且获得焦点,此时可以与用户交互。

B、暂停态(Paused):Activity被置于后台但仍然被用户可见,此时它失去了焦点,所以不可与用户进行交互,但是其状态信息会被系统保留。

C、停止态(Stopped):Activity被新的Activity覆盖,此时该Activity虽然失去焦点,但是被用户可见,而且其状态信息会被系统保留。

D、终止态(Destroyed):Activity被系统终止,资源被回收。

下列关于启动Activity描述不正确的是( C )。

A、直接启动Activity需要先声明一个Intent对象用来指定启动源和启动目标。 B、当直接启动Activity并声明了一个Intent对象后,根据需要在其中可以封装一些数据,然后使用startActivity(Intent)方法将这个Intent对象传入。

C、带返回值启动Activity的这种方式是使用startActivityForResult(Intent intent, int requestCode)方法来实现的,并在原Activity中重写onActivityRequest(int requestCode, int resultCode, Intent data) 方法来获取到返回值。

D、带返回值启动Activity的这种方式在获取到返回值后,它通过requestCode和resultCode两个参数匹配到相应的Activity,然后就可以通过data参数处理返回信息了。 下列关于关闭Activity的操作中,finish()方法的使用描述错误的是( D )。 A、该方法是由开发者在代码中调用的。

B、该方法在Activity执行完成所有任务且要被关闭时调用。

C、该方法一旦被调用,调用这个方法的Activity会自动执行其生命周期中的终止Activity的过程。

D、在实际开发中,我们可以把所有的清理资源的操作放在onStop()方法中,并在需要时调用finish(),来间接地调用onStop(),以关闭Activity。

下列关于关闭Activity的操作中,finishActivity(int requestCode)方法的使用描述不正确的是( B )。

A、能被该方法关闭的Activity可以有多个。

B、该方法可以用来关闭自身Activity,也可以通过requestCode参数来关闭其他的Activity。

C、该方法就是通过匹配requestCode和这个请求码来关闭相应的Activity,当有多个Activity匹配时,会将这些Activity全部关闭。

D、能被该方法关闭的Activity都必须是由调用该方法的Activity所启动,且是使用startActivityForResult()启动的,也就是带返回值的方式。 下列关于作业和保留栈说法不正确的是( A )。

A、Activity被启动且显示给用户,它被压入栈中成为栈顶元素,此时它处于暂停态。 B、在Android系统中,使用作业与保留栈(Tasks and Back Stack)对Activity进行管理。

C、作业(Task)是一个由当执行某一个共同任务时与用户产生交互的多个Activity组

10.

11.

12.

13.

14.

成的集合。

D、在Android系统中,将两个不同应用程序的Activity放入同一个作业来保持无缝的用户体验;对每一个作业,都会使用一个保留栈来存放完成这个作业所需要的Activity。 下列关于Activity不可见和透明的描述错误的是( B )。

A、设置Activity为不可见,只需在onCreate()方法中调用setVisible(false)即可。 B、对于4.0及以上的版本,设置为不可见后,Activity不会显示其界面上的任何内容,但是其上的控件将不能响应用户事件。

C、被设置为透明的Activity,其上的控件会被显示,还能响应用户操作,只是它的背景看起来变为透明了,显示的它的下层Activity的界面。

D、将Activity设置为透明的方式是,只需在AndroidManifest.xml文件的标签中,将Activity的theme属性设置为“android:theme=\”即可。 下列关于横竖屏显示表达不对的是( A )。

A、在Android中至多只能禁用两个Activity的屏幕旋转功能。

B、智能手机都具有屏幕旋转的功能,其上的界面会自适应屏幕的横竖旋转。

C、设置横竖屏,可以在AndroidManifest.xml文件中相应的标签中加入android:screenOrientation=\属性,值为“portrait”是竖屏,为“landscape”是横屏。 D、设置横竖屏,可以在onCreate()方法中调用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)将Activity置为横屏;同样地,使用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)即可将Activity置为竖屏。

下列关于Intent激活各个组件的说法错误的是( C )。

A、Activity、Service和Broadcast Receiver组件都可以被Intent消息激活。 B、Intent本身还可以以键值对的形式封装数据,这些数据可以随着组件的相互触发而被传递到目标组件,目标组件可以接收并处理这些数据。

C、与Activity的启动类似,Service也有两种激活方式,分别是开启服务—Context.startService()和绑定服务—Context.bindService();但是,绑定服务—Context.bindService()跟Intent无关。 在开启Service的方式中,被启动的Service不会随开启它的组件的关闭而停止。

D、定义好Intent对象后,可以将它传递给三种广播发送方式中的一种,它们分别是Context.sendBroadcast()、Context.sendOrderedBroadcast()和 Context.sendStickyBroadcast()。

下列关于Intent及其组件名属性描述不正确的是( D )。

A、一个Intent对象包括六个属性:组件名(Component Name)、动作(Action)、数据(Data)、分类(Category)、额外信息(Extra)和标志(Flags)。 B、额外信息(Extra)的数据类型是键值对形式,键都是String,值可为多种类型和Bundle。 C、组件名用来处理Intent的匹配问题,它可以被设置,也可以不被设置;设置了组件名的Intent叫做显式Intent,不设置组件名的Intent叫做隐式Intent。

D、当一个Intent是隐式Intent时,它可以使用Action、Data和Category进行匹配,所以Category也可以用来过滤Intent;在Intent对象中,只可以放置一个Category。 下列设置组件名的几种方法中不正确的一项是( D )。 A、直接在Intent的定义中指定组件名。 B、使用setComponent()方法。

15.

16.

17.

18.

19.

C、使用setClassName()方法。 D、使用setClassTag()方法。

下面关于Intent对象的属性描述不对的选项是( B )。

① 组件名(Component Name)的数据类型是ComponentName,获取方法是getComponent()。

② 动作(Action)的数据类型是String,获取方法是getAction()。 ③ 数据(Data)的数据类型是Uri,获取方法是getData()、getType()和getDataAndType()。 ④ 分类(Category)的数据类型是String,获取方法是getCategories()。

⑤ 额外信息(Extra)的数据类型是键值对形式和Bundle,获取方法是getExtra()和getExtras()。

⑥ 标志(Flags)的数据类型是String,获取方法是getFlags()。 A、①③⑤ B、①②④ C、②③④ D、④⑤⑥

下列关于Android中Data(数据)及内置Intent的使用描述错误的是( A )。 A、在Intent中的setDataAndType()方法里,既可以一次性设置Data属性的URI和Type,也可以一次性使用setData()和setType()去设置。

B、Data通常都是与Action组合使用的,Data表示一个动作所操作的数据,而Action则表示这个动作是什么。

C、Data属性包括两部分,URI(通用资源标识符)和Type(MIME类型)。 D、Data属性常与Acting属性配套使用,比如打电话事件等。

下列关于Android中动作(Action)的描述不正确的是( C )。

A、动作(Action)用于描述Intent将要完成什么动作;开发者通常可以自定义动作(Action)用在广播中,表示一个动作发生了。

B、Android系统为了编程方便还提供了一套内置的动作(Action)。

C、Action的常量ACTION_CALL的目标组件是Broadcast Receiver,动作是直接拨打Data属性指定的电话号码。

D、自定义的动作(Action)可以用在同一个应用内部,这时在使用时只需要说明其名称即可;同时也可以用在不同的应用之间,这时需要说明其完整的应用程序名称(在Android里就是主包名)加Action名称。 下列关于Android中Extra(额外信息)及Intent数据传递的描述有误的一项是( C )。 A、Intent使用直接或间接的键值对形式封装数据。

B、Intent中传递数据的功能就是通过Extra这个属性实现的。

C、Intent在传递数据时,发起方要先封装好数据,然后接收方根据数据封装格式接收并处理数据;接收方使用getExtras()方法,并在其中传入一个String类型的参数,该参数就是发起方定义好的“键”,通过它就可以接收到数据。 D、直接的键值对形式即指发起方直接使用Intent对象的putExtra()方法;间接的的键值对形式(使用Bundle数据包)即指发起方也可以先把这些数据封装在一个叫做Bundle的数据包中,然后再把这个Bundle对象装进Intent中,进行数据传递。 下列关于Intent的匹配法则描述不对的一项是( D )。

① Intent Filter通过Intent的Action、Category和Data三个属性进行匹配,开发者不可以随意地组合它们。

② 只有Action、Category和Data这三个属性的匹配都通过才能接收到这个Intent,如果没有定义某个属性的过滤器,则认为已经通过该属性的匹配。

③ 如果Action、Category和Data这三个属性的过滤器都没有被设置,也可以接收到任意隐式Intent。

④ 每种属性内部又能拥有多个匹配项,而这里与属性级的过滤法则不同,匹配项越多表示越容易匹配到这个Intent。

⑤ Android中Intent的匹配法则:属性级(Action、Category和Data)的匹配是“或”的运算,任有一个属性匹配不到,则无法接收到这个Intent。

⑥ 如果只声明了一个属性的过滤器,其中有多个匹配子项,则只要能匹配到任何一个子项,则可以接收到这个Intent。

⑦ Android中Intent的匹配法则:一个属性内部的匹配则是“且”的运算,只要有一个子项能匹配到,则认为可以匹配到这个属性。

⑧ 如果声明了一个属性的过滤器,但在其中没有设置任何匹配子项,则会阻塞所有的过滤器,该组件将不会接收到任何隐式Intent。 A、①③④⑥⑧ B、②④⑤⑦⑧ C、③④⑤⑦ D、②④⑥⑧ 20. 下列关于使用Intent Filter描述有误的一项是( B )。

A、Intent Filter有两种使用方式。

B、不可以在代码中使用IntentFilter对象。 C、允许在配置文件AndroidManifest.xml中的相应组件的标签中加入标签,在其中进行设置。

D、Intent Filter的几种方式都可以使用系统内置或自定义的属性值,开发者可以使用Action、Category和Data三个属性的设置和获取方法完成匹配。

二、简答题:(共5题,每题8分)

1. 请举例写出一个Activity的简单使用,并注明主要代码的作用。 2. 请详细请描述一下在Activity的生命周期中各个方法的调用顺序。 3. 请结合文字和代码来详细描述Activity的两种启动方式。

4. 请写出通过点击入口类中的一个按钮,然后打开百度主页的代码(请用Intent的Action

属性和Data属性)。

5. 请写出一个用Intent的Extra属性来进行数据传递(不少于两种数据类型的数据传递)

的详细代码。

本文来源:https://www.bwwdw.com/article/7vdf.html

Top