收藏 分销(赏)

AnjoyoAndroid02章节考试题讲课稿.doc

上传人:丰**** 文档编号:3791021 上传时间:2024-07-18 格式:DOC 页数:11 大小:45.50KB
下载 相关 举报
AnjoyoAndroid02章节考试题讲课稿.doc_第1页
第1页 / 共11页
AnjoyoAndroid02章节考试题讲课稿.doc_第2页
第2页 / 共11页
AnjoyoAndroid02章节考试题讲课稿.doc_第3页
第3页 / 共11页
AnjoyoAndroid02章节考试题讲课稿.doc_第4页
第4页 / 共11页
AnjoyoAndroid02章节考试题讲课稿.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、AnjoyoAndroid02章节考试题精品文档AnjoyoAndroid第二章考试题一、 选择题:(共20题,每题3分)1. 下列关于Activity的说法正确的一个选项是( C )。 Activity是Android的四大组件之一。 Activity在实现中通常作为一个Java类出现。 Activity是一个用来提供用户交互界面的组件。 Activity使一个应用程序的指定数据集提供给其它应用程序。 当一个Activity启动另一个Activity时,就需要使用到Intent,它起到媒介的作用。 每一个Android应用都必须要有一个叫做“MainActivity”的入口Activity。

2、 入口Activity会作为初始界面在应用关闭时再展示给用户。 每个Activity都可以启动另一个Activity。A、B、C、D、2. 下列关于使用一个Activity说法错误的一个选项是( A )。 需要首先实现一个继承自Activity的子类。 重写父类中的一些方法。 一般都会重写onCreate(),这个方法是在Activity被关闭时自动调用的。 重写的onCreate()方法是具有参数的,也有返回值。 onCreate()方法的参数是一个Bundle类型的对象。 Bundle类与Map一样,是一个key-value类型。 在四大组件之间传递数据时,Bundle常被用来存储数据。

3、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()、onDest

4、roy()和onRestart()七种。4. 在Activity生命周期中的各个方法,它们在不同状态下的调用顺序不正确的一个选项是( D )。 初次启动一个Activity时的执行过程是:依次执行了onCreate() 、onStart() 和onResume()方法。 当Activity启动后,点击“返回”按钮,这时Activity的执行顺序是:onPause() - onStop() - onStop()。 启动一个Activity时的执行过程是:依次执行了onCreate() 、onStart() 和onResume()方法。 在Activity被启动之后,点击Home按钮,这时Acti

5、vity的执行顺序是:onPause() - onStop()。 点击Home按钮后,系统回到桌面,然后我们再找到这个应用并打开,这时Activity的执行顺序是:onRestart() - onCreate() - onStart() - onResume()。 重新启动一个应用,在它被启动后,先点击“拨打电话”按钮,之后再点击“返回”按钮,这时Activity的执行顺序是:onPause() - onStop() - onRestart() - onStart() - onResume()。A、B、C、D、5. 对于Activity的四种基本状态描述不正确的是( C )。A、运行态(Run

6、ning):Activity处于屏幕最前端,被用户可见且获得焦点,此时可以与用户交互。B、暂停态(Paused):Activity被置于后台但仍然被用户可见,此时它失去了焦点,所以不可与用户进行交互,但是其状态信息会被系统保留。C、停止态(Stopped):Activity被新的Activity覆盖,此时该Activity虽然失去焦点,但是被用户可见,而且其状态信息会被系统保留。D、终止态(Destroyed):Activity被系统终止,资源被回收。6. 下列关于启动Activity描述不正确的是( C )。A、直接启动Activity需要先声明一个Intent对象用来指定启动源和启动目标。

7、B、当直接启动Activity并声明了一个Intent对象后,根据需要在其中可以封装一些数据,然后使用startActivity(Intent)方法将这个Intent对象传入。C、带返回值启动Activity的这种方式是使用startActivityForResult(Intent intent, int requestCode)方法来实现的,并在原Activity中重写onActivityRequest(int requestCode, int resultCode, Intent data) 方法来获取到返回值。D、带返回值启动Activity的这种方式在获取到返回值后,它通过reques

8、tCode和resultCode两个参数匹配到相应的Activity,然后就可以通过data参数处理返回信息了。7. 下列关于关闭Activity的操作中,finish()方法的使用描述错误的是( D )。A、该方法是由开发者在代码中调用的。B、该方法在Activity执行完成所有任务且要被关闭时调用。C、该方法一旦被调用,调用这个方法的Activity会自动执行其生命周期中的终止Activity的过程。D、在实际开发中,我们可以把所有的清理资源的操作放在onStop()方法中,并在需要时调用finish(),来间接地调用onStop(),以关闭Activity。8. 下列关于关闭Activi

9、ty的操作中,finishActivity(int requestCode)方法的使用描述不正确的是( B )。A、能被该方法关闭的Activity可以有多个。B、该方法可以用来关闭自身Activity,也可以通过requestCode参数来关闭其他的Activity。C、该方法就是通过匹配requestCode和这个请求码来关闭相应的Activity,当有多个Activity匹配时,会将这些Activity全部关闭。 D、能被该方法关闭的Activity都必须是由调用该方法的Activity所启动,且是使用startActivityForResult()启动的,也就是带返回值的方式。9. 下

10、列关于作业和保留栈说法不正确的是( A )。A、Activity被启动且显示给用户,它被压入栈中成为栈顶元素,此时它处于暂停态。B、在Android系统中,使用作业与保留栈(Tasks and Back Stack)对Activity进行管理。C、作业(Task)是一个由当执行某一个共同任务时与用户产生交互的多个Activity组成的集合。D、在Android系统中,将两个不同应用程序的Activity放入同一个作业来保持无缝的用户体验;对每一个作业,都会使用一个保留栈来存放完成这个作业所需要的Activity。10. 下列关于Activity不可见和透明的描述错误的是( B )。A、设置Ac

11、tivity为不可见,只需在onCreate()方法中调用setVisible(false)即可。 B、对于4.0及以上的版本,设置为不可见后,Activity不会显示其界面上的任何内容,但是其上的控件将不能响应用户事件。 C、被设置为透明的Activity,其上的控件会被显示,还能响应用户操作,只是它的背景看起来变为透明了,显示的它的下层Activity的界面。 D、将Activity设置为透明的方式是,只需在AndroidManifest.xml文件的标签中,将Activity的theme属性设置为“android:theme=android:style/Theme.Translucent

12、.NoTitleBar.Fullscreen”即可。11. 下列关于横竖屏显示表达不对的是( A )。A、在Android中至多只能禁用两个Activity的屏幕旋转功能。B、智能手机都具有屏幕旋转的功能,其上的界面会自适应屏幕的横竖旋转。C、设置横竖屏,可以在AndroidManifest.xml文件中相应的标签中加入android:screenOrientation=属性,值为“portrait”是竖屏,为“landscape”是横屏。D、设置横竖屏,可以在onCreate()方法中调用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTAT

13、ION_LANDSCAPE)将Activity置为横屏;同样地,使用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)即可将Activity置为竖屏。12. 下列关于Intent激活各个组件的说法错误的是( C )。A、Activity、Service和Broadcast Receiver组件都可以被Intent消息激活。B、Intent本身还可以以键值对的形式封装数据,这些数据可以随着组件的相互触发而被传递到目标组件,目标组件可以接收并处理这些数据。C、与Activity的启动类似,Service也有两种激活方式

14、,分别是开启服务Context.startService()和绑定服务Context.bindService();但是,绑定服务Context.bindService()跟Intent无关。在开启Service的方式中,被启动的Service不会随开启它的组件的关闭而停止。D、定义好Intent对象后,可以将它传递给三种广播发送方式中的一种,它们分别是Context.sendBroadcast()、Context.sendOrderedBroadcast()和 Context.sendStickyBroadcast()。13. 下列关于Intent及其组件名属性描述不正确的是( D )。A、一

15、个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

16、;在Intent对象中,只可以放置一个Category。14. 下列设置组件名的几种方法中不正确的一项是( D )。A、直接在Intent的定义中指定组件名。B、使用setComponent()方法。C、使用setClassName()方法。D、使用setClassTag()方法。15. 下面关于Intent对象的属性描述不对的选项是( B )。 组件名(Component Name)的数据类型是ComponentName,获取方法是getComponent()。 动作(Action)的数据类型是String,获取方法是getAction()。 数据(Data)的数据类型是Uri,获取方法是g

17、etData()、getType()和getDataAndType()。 分类(Category)的数据类型是String,获取方法是getCategories()。 额外信息(Extra)的数据类型是键值对形式和Bundle,获取方法是getExtra()和getExtras()。 标志(Flags)的数据类型是String,获取方法是getFlags()。A、B、C、D、16. 下列关于Android中Data(数据)及内置Intent的使用描述错误的是( A )。A、在Intent中的setDataAndType()方法里,既可以一次性设置Data属性的URI和Type,也可以一次性使用

18、setData()和setType()去设置。B、Data通常都是与Action组合使用的,Data表示一个动作所操作的数据,而Action则表示这个动作是什么。C、Data属性包括两部分,URI(通用资源标识符)和Type(MIME类型)。D、Data属性常与Acting属性配套使用,比如打电话事件等。17. 下列关于Android中动作(Action)的描述不正确的是( C )。A、动作(Action)用于描述Intent将要完成什么动作;开发者通常可以自定义动作(Action)用在广播中,表示一个动作发生了。B、Android系统为了编程方便还提供了一套内置的动作(Action)。C、A

19、ction的常量ACTION_CALL的目标组件是Broadcast Receiver,动作是直接拨打Data属性指定的电话号码。D、自定义的动作(Action)可以用在同一个应用内部,这时在使用时只需要说明其名称即可;同时也可以用在不同的应用之间,这时需要说明其完整的应用程序名称(在Android里就是主包名)加Action名称。18. 下列关于Android中Extra(额外信息)及Intent数据传递的描述有误的一项是( C )。A、Intent使用直接或间接的键值对形式封装数据。 B、Intent中传递数据的功能就是通过Extra这个属性实现的。 C、Intent在传递数据时,发起方要

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

21、个属性进行匹配,开发者不可以随意地组合它们。 只有Action、Category和Data这三个属性的匹配都通过才能接收到这个Intent,如果没有定义某个属性的过滤器,则认为已经通过该属性的匹配。 如果Action、Category和Data这三个属性的过滤器都没有被设置,也可以接收到任意隐式Intent。 每种属性内部又能拥有多个匹配项,而这里与属性级的过滤法则不同,匹配项越多表示越容易匹配到这个Intent。 Android中Intent的匹配法则:属性级(Action、Category和Data)的匹配是“或”的运算,任有一个属性匹配不到,则无法接收到这个Intent。 如果只声明了一

22、个属性的过滤器,其中有多个匹配子项,则只要能匹配到任何一个子项,则可以接收到这个Intent。 Android中Intent的匹配法则:一个属性内部的匹配则是“且”的运算,只要有一个子项能匹配到,则认为可以匹配到这个属性。 如果声明了一个属性的过滤器,但在其中没有设置任何匹配子项,则会阻塞所有的过滤器,该组件将不会接收到任何隐式Intent。A、B、 C、D、20. 下列关于使用Intent Filter描述有误的一项是( B )。A、Intent Filter有两种使用方式。 B、不可以在代码中使用IntentFilter对象。 C、允许在配置文件AndroidManifest.xml中的相

23、应组件的标签中加入标签,在其中进行设置。D、Intent Filter的几种方式都可以使用系统内置或自定义的属性值,开发者可以使用Action、Category和Data三个属性的设置和获取方法完成匹配。二、 简答题:(共5题,每题8分)1. 请举例写出一个Activity的简单使用,并注明主要代码的作用。2. 请详细请描述一下在Activity的生命周期中各个方法的调用顺序。3. 请结合文字和代码来详细描述Activity的两种启动方式。4. 请写出通过点击入口类中的一个按钮,然后打开百度主页的代码(请用Intent的Action属性和Data属性)。5. 请写出一个用Intent的Extr

24、a属性来进行数据传递(不少于两种数据类型的数据传递)的详细代码。答案:一、选择题:15:CABDC610:CDBAB1115:ACDDB1620:ACCDB二、简答题:1. 答:public class SimpleActActivity extends Activity Overrideprotected void onCreate(Bundle savedInstanceState) /* 调用父类的onCreate()方法 */super.onCreate(savedInstanceState); /* 指定这个Activity的界面配置文件,这里是act_simple_act.xml

25、*/setContentView(R.layout.act_simple_act);2. 答: 初次启动一个Activity时的执行过程是:依次执行了onCreate() 、onStart() 和onResume()方法。 当Activity启动后,点击“返回”按钮,这时Activity的执行顺序是:onPause() - onStop() - onDestroy()。 启动一个Activity时的执行过程是:依次执行了onCreate() 、onStart() 和onResume()方法。 在Activity被启动之后,点击Home按钮,这时Activity的执行顺序是:onPause()

26、- onStop()。 点击Home按钮后,系统回到桌面,然后我们再找到这个应用并打开,这时Activity的执行顺序是:onRestart() - onStart() - onResume()。 重新启动一个应用,在它被启动后,先点击“拨打电话”按钮,之后再点击“返回”按钮,这时Activity的执行顺序是:onPause() - onStop() - onRestart() - onStart() - onResume()。3. 答:直接启动:首先声明一个Intent对象用来指定启动源和启动目标,接着如果需要则在其中封装一些数据,然后使用startActivity(Intent)方法将这个

27、Intent对象传入,即可完成Activity的启动。关键代码段如下:Intent intent = new Intent(this, NewActivity.class);this.startActivity(intent); 如果想启动多个Activity,则使用startActivities(Intent)即可。 带返回值的启动:这种方式使用startActivityForResult(Intent intent, int requestCode)方法来实现,并在原Activity中重写onActivityResult(int requestCode, int resultCode, I

28、ntent data) 方法来获取到返回值,之后通过requestCode和resultCode两个参数匹配到相应的Activity,然后就可以通过data参数处理返回信息了。4. 答:public class MainActivity extends Activity Button btnOK;Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnOK = (Button) f

29、indViewById(R.id.btnOK); btnOK.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse();startActivity(intent);); xml的activity_main: 5. 答:MainActivity入口类public class MainActivity extends Activity Button btnOK;Overridepublic

30、 void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btnOK = (Button) findViewById(R.id.btnOK);btnOK.setOnClickListener(new OnClickListener() Overridepublic void onClick(View v) Intent intent = new Intent(MainActivity.this,ExtraActivity.

31、class);intent.putExtra(Id, 86);intent.putExtra(Name, 张三);intent.putExtra(Post, 项目经理);startActivity(intent););Overridepublic boolean onCreateOptionsMenu(Menu menu) getMenuInflater().inflate(R.menu.activity_main, menu);return true;xml:activity_main ExtraActivity接收数据类public class ExtraActivity extends

32、Activity TextView tvID, tvName, tvPost;public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_extra);tvID = (TextView) findViewById(R.id.tvID);tvName = (TextView) findViewById(R.id.tvName);tvPost = (TextView) findViewById(R.id.tvPost);Inte

33、nt intent = getIntent(); /* 拿到Intent对象,开始解析数据 */int id = intent.getIntExtra(Id, 0); /* 0为默认值,如果没有Id这个Key,就得到默认值 */String name = intent.getStringExtra(Name); /* String类型的数据无默认值 */String post = intent.getStringExtra(Post);System.out.println(id);System.out.println(name);System.out.println(post);tvID.setText(ID: + id);tvName.setText(Name: + name);tvPost.setText(Post:+post);xml:activity_extra 还需在AndroidManifest.xml里添加ExtraActivity类的声明:收集于网络,如有侵权请联系管理员删除

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服