admin 管理员组文章数量: 887021
2023年12月18日发(作者:mybatis表名作为参数)
选择题
1. 下面不是Android四大组件之一的( B )
A. Activity C. Service D. ContentProvider
2. 下面关于广播叙述错误的是(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)
ctivity( ) B. startService( ) C. startBroadcastReceiver() ctivityForResult()
7. 对于广播的发送,Intent的启动方式是(B)
A.显式启动 B. 隐式启动 C. A和B都可以 D. 以上说法都不正确。
8. 下面关于Notification的说法正确的是(D):
A. NotificationManager man = new NotificationManager();
B. PendingIntent contentIntent= new PendingIntent();
C. RemoteViews contentView = new RemoteViews();
D. Notification notification = new Notification();
9. 关于ContenValues类说法正确的是( A )
A、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的
名是String类型,而值都是基本类型
B、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的
名是任意类型,而值都是基本类型
C、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的
名,可以为空,而值都是String类型
D、他和Hashtable比较类似,也是负责存储一些名值对,但是他存储的名值对当中的名是String类型,而值也是String类型
10.在手机开发中常用的数据库是(A )
A,SQLite3 B,Oracle C,Sql Server D,Db23
11.使用AIDL完成远程Service方法调用下列说法不正确的是(A)
A,aidl对应的接口名称不能与aidl文件名相同
B,aidl的文件的内容类似java代码
C,创建一个Service(服务),在服务的onBind(Intent intent)方法中返回实现了aidl接口 的对象
D,aidl对应的接口的方法前面不能加访问权限修饰符
d中文件操作模式中表示只能被本应用使用,写入文件会覆盖的是(D)
A, MODE_APPEND B,MODE_WORLD_READABLE
C,MODE_WORLD_WRITEABLE D, MODE_PRIVATE
13.关于android中播放视频的说法不对的是(C)
A,可以使用SurfaceView组件播视频 B,可以使用VideoView组件播视频
C,VideoView组件可以控制播放的位置和大小 D,VideoView播放视频的格式可以是3gp
14.下列关于如何使用Notification,不对的是(D)
A,notification需要NotificatinManager来管理
B,使用NotificationManager的notify方法显示notification消息
C,在显示Notification时可以设置通知时的默认发声,震动等
D,调用Notification对象中的方法可以清除消息
15. 下列不属于Service生命周期的方法是(C)
A,onCreate B,onDestroy C,onStop D,onStart
16. 下列对SharedPreferences存、取文件的说法中不正确的是:(C)
A,属于移动存储解决方案 B,sharePreferences处理的就是key-value对
C,读取xml文件的路径是/sdcard/shared_prefs/ D,数据的保存格式是xml
Preferences存放的数据类型不支持(D)
A. boolean C. String D. double
18.下面关于JSON说法错误的是:(D)
A. json是一种数据交互格式。
B. json的数据格式有两种为 { }和[ ]
C. json数据用{ }表示java中的对象,[ ]表示Java中的List对象
D.{“1”:”123”, ”2”:”234”, ”3”:”345”} 不是json数据
19.下面SQL语句不正确的是(C)
A. Select * from user user set username=’zhangsan’ where id=’2’
C. Delete * from user into user values(1,’zhang’,’pass’);
20.对于SharedPreferences的下面正确的是(D )
A. SharedPreferences pref = new SharedPreferences();
B. Editor editor = new Editor();
C. SharedPreferences对象用于读取和存储常用数据类型
D. Editor对象存储数据最后都要调用commit()方法。
21.在多个应用中读取共享存储数据时,需要用到的query方法,是哪个对象的方法(A)
A. ContentResolver 内容解析器 B. ContentProvider
C. Cursor D. SQLiteHelper
e中如何实现更改Activity界面元素( B )。
A. 通过把当前activity对象传递给service对象
B. 通过向Activity发送广播
C. 通过Context对象更改Activity界面元素
D. 可以在Service中,调用Activity的方法实现更改界面元素
23.在使用 SQLiteOpenHelper 这个类时,它的哪一个方法是用来实现版本升级之用的?( D )
A. onCreate() B. onUpgrading() C. onUpdate() D. onUpgrade()
layer 播放资源前,需要调用哪个方法完成准备工作? ( B )
A. setDataSource() B. prepare() C. reset() D. release()
25.在android中使用SQLiteOpenHelper这个辅助类时,获取 ( C )
A. getDatabase() B. openDatabase()
C. getReadableDatabase() D. getAbleDatabase()
26.关于service生命周期的说法正确的是?( B )
A. 如果service已经启动,将先后调用onCreate()和onStart()方
B. 当第一次启动的时候先后调用onCreate()和onStart()方法
C. 当第一次启动的时候只会调用onCreate()方法
D. 如果Service没有启动,不能调用StopService停止服务。
27. 使用MediaPlayer 播放保存在 sdcard 上的 mp3 文件时,(C)?
A. 需要使用 方法创建 MediaPlayer
B. 直接 new MediaPlayer 即可
C. 需要调用 setDataSource 方法设置文件源
D. 直接调用 start 方法,无需设置文件源
28.使用AIDL 完成远程 service 方法调用下列说法不正确的是? ( A )
A. aidl 对应的接口名称不能与 aidl 文件名相同
B. aidl 的文件的内容类似 java 代码
C. 创建一个 Service,在服务的 onBind(Intent intent)方法中返回实现了 aidl 接口的对象
D. aidl 对应的接口的方法前面不能加访问权限修饰符
29. 关于广播的作用,正确的说法是( D)
A. 它是用接收系统发布的一些消息的
B. 它可以帮助 service修改用户界面
C. 它不可以启动一个 Service
D. 它可以启动一个 Activity
30. 关于 Sqlite 数据库,不正确的说法是(C) 选择一项:
A. SqliteOpenHelper类主要是用来创建数据库和更新数据库
B. SqliteDatabase 类是用来操作数据库的
C. 在每次调用 SqliteDatabase 的getWritableDatabase() 方法时,会执行 SqliteOpenHelper 的onCreate 方法。
D. 当数据库版本发生变化时,可以自动更新数据库结构
31. 下列选项哪个不是Activity启动的方法(A)
A、goToActivity B、startActivity
C、startActivityFromChild D、startActivityForResult
32. 下列选项哪个是发送广播的方法( C )
A. startBroadcast B. startBroadcastReceiver
C. sendBroadcast oadcastReceiver
33. SharedPreferences保存文件的路径和扩展名是?( B)
A、/data/data/shared_prefs/ *.txt
B、/data/data/package name/shared_prefs/ *.xml
C、/mnt/sdcard/指定文件夹 指定扩展名
D、任意路径 指定扩展名
34. Activty和Task的启动模式有哪些?(D)
A、standard、singleTop
B、singleTop、singleTask
C、singleTask、singleInstance
D、standard、singleTop、singleTask、singleInstance
35. 对于一个已经存在的SharedPreferences对象setting,想向其中存入一个字符串"person",setting应该先调用什么方法( A )
A、edit() B、save() C、commit() D、putString()
36. 通过startService()和bindService(),以下说法错误的是( C )
A、通过startService()启动服务:会调用如下生命周期方法: onCreate()---->onStart()---->onDestory()
B、当采用startService()方法启动服务,访问者与服务之间是没有绑定在一起的,访问者退出,服务还在运行
C、如果是调用bindService()启动服务:会调用如下生命周期方
法: onCreate()---->onBind---->onDestory()---->onUnBind()
D、采用bindService()方法启动服务时,访问者与服务是绑定在一起的,即访问者退出,服务也就终止,解除绑定。
37.在Android中,关于MediaPlayer说法错误的是( C )
A、MediaPlayer包含了Audio和video的播放功能。
B、获得MediaPlayer实例的有new MediaPlayer()和()的方式。
C、当我们播放一首歌曲由于异常中断,由于数据丢失,只能从开始的位置开始播放。
D、在指定MediaPlayer数据的来源时,必须指定播放的文件的路径、资源id或网络路径。
38.在JDBC连接数据库编程应用开发中,利用( A )可以实现连接数据库。
A. Connection类 B. PreparedStatement类 C. CallableStatement类 D. Statement
39.为了实现在Java的程序中调用带参数的SQL语句,应该采用(B )来成。
A. Connection类 B. PreparedStatement类 准备声明 C. ResultSet类 D. Statement
40. 从HTTP请求中,获得请求参数,应该调用 ( B )
A. request对象的getAttribute()方法 B. request对象的getParameter()方法 获取参数
C. session对象的getAttribute()方法 D. session对象的getParameter()方法
41. 多线程下载和断点续传使用什么( D )类是对文件进行操作。
A. FileInputStream treamReader
D. RandomAccessFile 随机存取文件
42. 关于SQLite3数据库的操作,下面说法不正确的是( C )
A. Context对象调用openOrCreateDatabase方法打开或者创建数据库
B. SQLiteDatabase类的静态方法openOrCreateDatabase方法打开或者创建数据库
C. Context对象closeDatabase方法关闭数据库。
D. SQLiteDatabase类的静态方法deleteDatabase方法删除数据库
43. 下列不属于service生命周期的方法是 ( C )
te roy tCommand
44.关于ServiceConnection接口的onServiceConnected()方法的触发条件描述正确的是( B )rvice()方法执行成功后。
rvice()方法执行成功同时onBind()方法返回非空IBinder对象。
e的onCreate()方法和onBind()方法执行成功后。
e的onCreate()和onStartCommand()方法启动成功后。
45.使用SQLiteOpenHelper的构造方法创建与数据库连接时,参数可以设置为null的是( C )
t B.数据库名 C. CursorFactory D.数据库版本
46.继承ContentProvider不需要实现 ( A )等方法。
A. add B. delete C. update D. query
47.下面哪个方法不是发送广播消息的方法?( B )
A、sendBroadcast() B、sendCommonBroadcast()
C、sendOrderedBroadcast() D、sendStickyBroadcast()
48.下列关于ContentProvider的说法错误的是:( B )
A、ContentProvider的作用是实现数据共享和交换
B、要访问ContentProvider,只需调用ContentProvider的增删改查相关方法
C、ContentProvider提供的URI必须以“content://”开头
D、Android对于系统里的音视频、图像、通讯录提供了内置的ContentProvider
49. 获取SD卡音乐列表,通过调用( B )方法,才能调用query方法
A. getContentProvider tentResolver C. getConnection D. getUri
50.关于JSON和XML说法,错误的是( B )
A. JSON的速度要远远快于XML
B. JSON对数据的描述性比XML好
C. JSON相对于XML来讲,数据的体积小
D. JSON和XML同样拥有丰富的解析手段
51. 对输入中拼写检查的支持是通过什么方式实现的? ( C )
A、BroadcastReceiver B、ContentProvider C、Service D、Activity
52.通过Intent可以启动那些组件? D
A、Activity B、Service C、两项都不可以 D、两项都可以
53. 以下哪个不是Activity启动时的正确标志?( B )
A、FLAG_ACTIVITY_CLEAR_TOP B、FLAG_ACTIVITY_SINGLE_TASK
C、FLAG_ACTIVITY_SINGLE_TOP D、FLAG_ACTIVITY_NEW_TASK
54. 遇到下列哪种情况时需要把进程移到前台?( D )
A、进程正在运行一个与用户交互的Activity ,它的onResume()方法被调用
B、进程有一正在运行的BroadcastReceiver,它的onReceive()方法正在执行
C、进程有一个Service,该Service对应的Activity正在与用户交互
D、所有选项均正确
55. 如何访问媒体库?( B )
A、通过直接文件读取 B 通过Content Provider
C、两项都可以 D、两项都不可以
56. FLAG_ACTIVITY_CLEAR_TOP标记的作用是什么?( C )
A、如果Activity已经在任何栈中启动,则不做任何操作
B、如果Activity已经在当前栈中启动,则不做任何操作
C、如果Activity已经在当前栈中启动,则所有在该Activity之上的Activity都会被销毁
D、如果Activity已经在任何栈中启动,则所有在该Activity之上的Activity都会被销毁
57. 下面哪种进程最重要,最后被销毁?( D )
A、服务进程 B、后台进程 C、可见进程 D、前台进程
58. SharedPreferences和Preferences的修改支持事务吗?( A )
A、支持,不支持 B、不支持,不支持
C、不支持,支持 D、支持,支持
59. 在播放视屏时,需要保持屏幕一直亮着,需要哪个权限?( B )
A、
B、
C、
D、
60. 关于广播以下陈述正确的是D ).
A、广播接收器只能在配置文件中注册
B、广播接收器注册后不能注销
C、广播接收器只能接收自定义的广播消息
D、广播接收器可以在Activity中单独注册与注销
61. 当大量使用大Bitmap对象时,以下哪个说法是正确的? ( D )
A、不会崩溃,但要求不再使用的Bitmap对象设置为空
B、不会崩溃,但要求经常调用()通知内存释放
C、不会崩溃,因为虚拟机会自动回收内存
D、很可能会导致系统崩溃
62. 以下哪个不是应用间交互常用的方法? ( B )
A、接收Broadcast的消息 B、文件共享访问
C、通过Content Resolver接口访问 D、Activity的调用
63.通过bindService()启动service,如果service还未启动,后有什么操作?当调用者退出,service会有什么操作?( B )
A、失败,不终止 B、启动,终止
C、失败,终止 D、启动,不终止
64. Android应用四大组件中,可以在后台长时间执行长时,而不需要提供用户界面的是( A )
A、Service B、Activity C、BroadcastReceiver D、ContentProvider
65. ContentResolver用什么方法查询Content Provider提供的内容( C )
A、select() B、retrieve() C、query() D、execute( )
66. PendingIntent主要的使用场景是?( D )
A、在Widget中设置响应用户操作的动作
B、通过Notification发起一个动作
C、至少有一个不正确
D、A和B都正确
67.在应用程序中用到设备震动时需要使用什么权限?( D )
A、E
B、E
C、E
D、E
68.关于ServiceConnection接口的onServiceConnected()方法的触发条件描述正确的是?( B )
A、bindService()方法执行成功后
B、bindService()方法执行成功同时onBind()方法返回非空IBinder对象
C、Service的onCreate()方法和onBind()方法执行成功后
D、Service的onCreate()和onStartCommand()方法启动成功后
69.关于Intent 对象说法错误的是( D )
A、在 android 中,Intent对象是用来传递信息的
B、Intent 对象可以把值传递给广播或 Activity
C、利用 Intent 传值时,可以传递一部分值类型
D、利用 Intent 传值时,它的 key 值可以是对象
cation消息能否被取消?( A )
A、只能取消本应用发起的消息 B、可以被任何应用取消
C、不能取消,只能覆盖 D、只能取消本应用发起的消息,且只能通过消息ID逐个取消
71.如果在android应用程序中需要发送短信,那么需要在文件中增加什么样的权限( D ).
A、发送短信,无需配置权限 B、
C、E_SMS D、_SMS
72.关于视频的来源,哪个不正确?( D )
A、可来源于外部URL B、可来源于内部URI,通过Content Resolver获取
C、可来源于资源文件 D、可以文件方式直接访问内部Media
73. 内部存储和外部存储需要额外的权限吗?(D )
A、不需要,不需要 B、需要,不需要
C、需要,需要 D、不需要,需要
74. 如何访问在SD卡上的文件?( D )
A、通过直接文件读取 B、通过Content Provider
C、两项都不可以 D、两项都可以
75.下列哪些情况下,系统可能会弹出ANR对话框( A )
A、在Activity中,Main线程消息队列中的消息在5秒内没有得到响应
B、在Service中,onStartCommand()方法执行超过5秒
C、在BroadcastReceiver中,onReceive()方法执行时间超过5秒
D、在启动的新线程中,run()方法执行时间超过5秒
76. 通过startService()和bindService(),以下说法错误的是( C )
A、通过startService()启动服务会调用如下生命周期方法:
onCreate()---->onStart()---->onDestory()
B、当采用startService()方法启动服务,访问者与服务之间是没有绑定在一起的,访问者退出,服务还在运行
C、如果是调用bindService()启动服务:会调用如下生命周期方法:onCreate()---->onBind---->onDestory()---->onUnBind()
D、采用bindService()方法启动服务时,访问者与服务是绑定在一起的,即访问者退出,服务也就终止,解除绑定。
77.如果想存储一个键值对字符串,应该使用哪个类?( B )
A、ContentResolver B、SharedPreferences C 、Resources D、Cookies
78. 系统收到intent发 起的启动Activity的请求时,根据什么来选择最合适的Activity?(D )
A、category B、data C、action D、都可以
79. Android提供了哪个高效的序列号接口?( B )
A、Clonable B、Parcelable可分包的 C、Copiable D、Externalizable
80.下面哪条语句可以构造正确的对话框( B ).
A、AlertDialog dialog = new AlertDialog(context);
B、r builder = new r(context);
C、ProgressDialog dialog = new ProgressDialog();
D、r builder = new r(context);
81.视频播放支持以下哪种方式?( C )
A、同步方式 B. 异步方式 C . 两者都支持 D. 两者都不支持
82. 哪个是交互UI相关的控件?( A )
A、Activity B、BroadcastReceiver C、Service D、Content provider
83. 绑定Service的方法是 ( A )
A、bindService B、startService C、onStart D、onBind
84. 关于Activity说的法不正确的是( C )
A、Activity是为用户操作而展示的可视化用户界面
B、一个应用程序可以有若干个Activity
C、Activity可以通过一个别名去访问
D、Activity可以表现为一个漂浮的窗口
85. 处理菜单项单击事件的方法不包含( D )
A、使用onOptionsItemSelected(MenuItem item)响应
B、使用onMenuItemSelected(int featureId .MenuItem item) 响应
C、使用onMenuItemClick(MenuItem item) 响应
D、使用onCreateOptionsMenu(Menu menu)响应 创建菜单
86. Android Activity生命周期中调用的第一个方法是?( C )
A、onInit() B、onStart() C、onCreate() D、onBegin()
87. Intent intent = newIntent(,(""))这句话作用陈述正确的是( B ).
A、发送Email B、在浏览器浏览这个网址 C、发送短信 D、其它项不正确
88. 如果把APP的最小SDK版本设置成8,那么以下哪个版本的将无法运行则个APP?( A )
A、7 B、8 C、9 D、都可以
89. 下列哪一项是manifest 文件的功能( D )
A、声明要求的最低API级别 B、声明要求的用户权限的级别
C、记录程序中使用的Activity等资源 D. 都是
90. 发起一个由以下代码初始化的Intent,会发生什么情况?( D )
Intent intent = new Intent();
egory(RY_BROWSABLE);
ion(_MAIN);
A、如果系统中有多个浏览器,则会让用户选择浏览器
B、如果系统有多个浏览器,并且设置了默认的,则会打开默认浏览器
C、如果系统中只有一个浏览器,则会打开该浏览器
D、都正确
91.当Activity由于资源不足被回收时,哪个函数会被调用?( A)
A、onSaveInstanceState() B、onSuspend() C、onSaveState() D、onStop()
92.导致一个Activity的onDestroy()方法被调用的原因是什么?( D)
A、该Activity被暂停或者停止,并且它的资源被操作系统回收
B、启动该Activity的Activity调用了finishActivity()
C、活动(Activity)调用finish() D、三项原因都是
ty生命周期最开始的方法调用顺序是?( D )
A、onCreate(), onResume(), onStart()
B、onCreate(), onRestart(), onResume()
C、onStart(), onResume(), onCreate()
D、onCreate(), onStart(), onResume()
94. 按HOME按钮后,系统查找哪类Activity?( A )
A、设置了ACTION_MAIN和ATEGORY_LAUNCHER的Activity
B、设置了ACTION_MAIN或ATEGORY_LAUNCHER的Activity
C、设置了ACTION_MAIN的Activity
D、设置了ATEGORY_LAUNCHER的Activity
95. 在Android工程中新建了一个Activity 需要在哪个xml文件中声明一下?(C )
A、 B、 C、 D、
96. 如果需要启动一个Activity,并在Activity结束时可立即获取结果的方法是。( D )
A、调用startActivityForResult()
B、在启动的Activity中注册receiver,在被启动的Activity中发起broadcast消息
C、两个选项都不正确
D、两个选项都正确
97. 如何给一个正在运行的service传递消息( D )
A、通过注册Receiver B、通过Intent C、通过定义AIDL接口 D、都正确
98. 在播放视频或音频时,如果有电话打入,这时候视频或音频会自动挂起吗?(A )
A、不会 B、会 C. 有的手机会,有的手机不会 D. 以上说法都错误
99. 如何支持语言国际化?( B)
A、在资源文件中按名称设置参数,例如: zh_=”标题”
B、按不同语言分目录提供不同的文件
C、两者都不正确 D、两者都正确
100. 关于Intent的说法,错误的是?( C )
A、可以用来激活一些组件
B、表示程序想做某事的意图
C、只能用于一个组件内部
D、不同组件之间通信的“媒介”,专门提供组件互相调用的相关信息。
1. 请描述一下Activity 生命周期。
答: 如下图所示。共有七个周期函数,按顺序分别是: onCreate(), onStart(), onRestart(),
onResume(), onPause(),onStop(), onDestroy()。
onCreate(): 创建Activity时调用,设置在该方法中,还以Bundle的形式提供对以前存储的任何状态的访问。
onStart(): Activity变为在屏幕上对用户可见时调用。
onResume(): Activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用。
onPause(): Activity被暂停或收回cpu和其他资源时调用,该方法用户保护活动状态的,也是保护现场。
onStop(): Activity被停止并转为不可见阶段及后续的生命周期事件时调用。
onRestart(): Activity被重新启动时调用。该活动仍然在栈中,而不是启动新的Activity。
1、完整生命周期: 即从一个Activity从出现到消失,对应的周期方法是从onCreate()到onDestroy()。
2、可见生命周期: 当Activity处于可以用户看见的状态,但不一定能与用户交互时,将多次执行从onStart()到onStop()。
3、前景生命周期: 当Activity处于Activity栈最顶端,能够与其他用户进行交互时,将多次执行从onResume()到onPause()。
2. 两个Activity之间跳转时必然会执行的是哪几个方法。
答: 两个Activity之间跳转必然会执行的是下面几个方法。
onCreate()//在Activity生命周期开始时调用。
onRestoreInstanceState()//用来恢复UI状态。
onRestart()//当Activity重新启动时调用。
onStart()//当Activity对用户即将可见时调用。
onResume()//当Activity与用户交互时,绘制界面。
onSaveInstanceState()//即将移出栈顶保留UI状态时调用。
onPause()//暂停当前活动Activity,提交持久数据的改变,停止动画或其他占用GPU资源的东西,由于下一个Activity在这个方法返回之前不会resume,所以这个方法的代码执行要快。
onStop()//Activity不再可见时调用。
onDestroy()//Activity销毁栈时被调用的最后一个方法。
3. 横竖屏切换时候 Activity 的生命周期。
答: 1、不设置 Activity 的 android: configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次。
2、设置 Activity 的 android: configChanges= “orientation ”时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次。
3、设置 Activity 的 android: configChanges= “orientation|keyboardHidden ” 时,切屏
不会重新调用各个生命周期,只会执行 onConfiguration 方法
4. 如何将一个 Activity 设置成窗口的样式。
答: 第一种方法,在 文件中,可以新建如下的类似 Dialog 的 style。
。
5. 两个Activity之间怎么传递数据?
答: 可以在Intent对象中利用Extra来传递存储数据。
在Intent的对象请求中,使用putExtra(“键值对的名字”,”键值对的值”);在另外一个Activity中将Intent中的请求数据取出来:
Intent intent = getIntent();
String value = ingExtra(“key”);
6. 怎么让在启动一个Activity是就启动一个service?
答: 首先定义好一个service,然后在Activity的onCreate里面进行连接并bindservice或者直接startService。
7. Activity怎么和service绑定,怎么在activity中启动自己对应的service?
答: 1、activity能进行绑定得益于Serviece的接口。为了支持Service的绑定,实现onBind方法。
2、Service和Activity的连接可以用ServiceConnection来实现。需要实现一个新的ServiceConnection,重现onServiceConnected和OnServiceDisconnected方法,一旦连接建立,就能得到Service实例的引用。
3、执行绑定,调用bindService方法,传入一个选择了要绑定的Service的Intent(显示或隐式)和一个你实现了的ServiceConnection的实例
8.什么是Service以及描述下它的生命周期。Service有哪些启动方法,有什么区别,怎样停用Service?
答: Android Service是运行在后台的代码,不能与用户交互,可以运行在自己的进程,也可以运行在其他应用程序进程的上下文里。需要通过某一个Activity或者Context对象来调用。Service有两个启动方法,分别是ervice()和rvice()。如果在Service执行耗时的操作需要启动一个新线程来执行。
Android Service只继承了onCreate(), onStart(),onDestroy()三个方法,当我们第一次启动Service时,先后调用onCreate(), onStart()这两个方法,当停止Service时,则执行onDestroy()方法时。如果Service已经启动了,当我们再次启动Service时,不会再执行onCreate()方法,而是直接执行onStart()方法。
9. 什么时候使用Service?
答: 比如播放多媒体的时候,用户启动了其他Activity,这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录你的地理信息位置的改变等等。
10. 请描述一下Intent 和 Intent Filter。
答: Intent在Android中被翻译为”意图”,他是三种应用程序基本组件-Activity,Service和broadcast
receiver之间相互激活的手段。在调用Intent名称时使用ComponentName也就是类的全名时为显示调用。这种方式一般用于应用程序的内部调用,因为你不一定会知道别人写的类的全名。而Intent Filter是指意图过滤,不出现在代码中,而是出现在android Manifest文件中,以
filter是使用erReceiver()来动态设定的,其中intent filter也是在代码中创建的)
一个intent有action,data,category等字段。一个隐式intent为了能够被某个intent filter接收,必须通过3个测试,一个intent为了被某个组件接收,则必须通过它所有的intent filter中的一个。
11. Intent传递数据时,可以传递哪些类型数据?
答: intent间传送数据一般有两种常用的方法: 1、extra 2、data。
extra可以用ra放入数据。新启动的Activity可用ras取出Bundle,然后用g,getInt,getBoolean,getString等函数来取放进去的值。
Data则是传输url。url可以是指我们熟悉的http,ftp等网络地址,也可以指content来指向ContentProvider提供的资源。a可以放入数据,a可以取出数据。
12. 说说Activity,Intent,Service是什么关系 ?
答: 一个Activity通常是一个单独的屏幕,每一个Activity都被实现为一个单独的类,这些类都是从Activity基类中继承而来的。Activity类会显示由视图控件组成的用户接口,并对视图控件的事件做出响应。
Intent的调用是用来进行屏幕之间的切换。Intent描述应用想要做什么。Intent数据结构中两个最重要的部分是动作和动作对应的数据,一个动作对应一个动作数据。
Service是运行在后台的代码,不能与用户交互,可以运行在自己的进程里,也可以运行在其他应用程序进程的上下文里。需要一个Activity或者其他Context对象来调用。
Activity跳转Activity,Activity启动Service,Service打开Activity都需要Intent表明意图,以及传递参数,Intent是这些组件间信号传递的承载着。
13. 请描述一下BroadcastReceiver。
答: Broadcast Receiver用于接收并处理广播通知(broadcast announcements)。多数的广播是系统发起的,如地域变换、电量不足、来电短信等。程序也可以播放一个广播。程序可以有任意数量的broadcast
receivers来响应它觉得重要的通知。Broadcast receiver可以通过多种方式通知用户: 启动activity、使用NotificationManager、开启背景灯、振动设备、播放声音等,最典型的是在状态栏显示一个图标,这样用户就可以点它打开看通知内容。通常我们的某个应用或系统本身在某些事件(电池电量不足、来电短信)来临时会广播一个Intent出去,我们利用注册一个broadcast
receiver来监听这些Intent并获取Intent中的数据。
14. 在manifest和代码中如何注册和使用 broadcast receiver 。
答: 在android的manifest中注册
在代码中注册
1、 IntentFilter filter = new IntentFilter(“dcast”);//和广播中Intent的action对应;
2、 MyBroadcastReceiver br= new MyBroadcastReceiver();
3、 registerReceiver(br, filter);
15. 请介绍下ContentProvider是如何实现数据共享的。
答: 一个程序可以通过实现一个Content provider的抽象接口将自己的数据完全暴露出去,而且Content provider是以类似数据库中的表的方式将自己的数据暴露。Content provider存储和检索数据,通过它可以让所有的应用程序访问到,这也是应用程序之间唯一共享数据的方法。
要想使应用程序的数据公开化,可通过2种方法:创建一个数据自己的Content Provider或者将你的数据添加到一个已经存在的Content Provider中,前提是有相同数据类型并且有写入Content Provider的权限,Android提供了Content Resolverr,外界的程序可以通过Content Resolver接口访问Content
Provider提供的数据。
16. 请介绍下Android的数据存储方式。
答: Android提供了5中存储数据的方式,分别是以下几种
1、使用Shared Preferences存储数据,用来存储key-value,pairs格式的数据,它是一个轻量级的键值存储机制,只可以存储基本数据类型。
2、使用文件存储数据,通过FileInputStream和FileOutputStream对文件进行操作。在Android中,文件是一个应用程序私有的,一个应用程序无法读写其他应用程序的文件。
3、使用SQLite数据库存储数据,Android提供的一个标准数据库,支持SQL语句。
4、使用Content Provider存储数据,是所有应用程序之间数据存储和检索的一个桥梁,它的作用就是使得各个应用程序之间实现数据共享。它是一个特殊的存储数据的类型,它提供了一套标准的接口用来获取数据,操作数据。系统也提供了音频、视频、图像和个人信息等几个常用的Content Provider。如果你想公开自己的私有数据,可以创建自己的Content Provider类,或者当你对这些数据拥有控制写入的权限时,将这些数据添加到Content Provider中实现共享。外部访问通过Content Resolver去访问并操作这些被暴露的数据。
5、使用网络存储数据
17. 请介绍下Android中常用的四种布局。
答: 最常用的布局方式为AbsoluteLayout、RelativeLayout、LinearLayout、FrameLayout其中Linear
Layout和RelativeLayout是最常用的方式,他们可以通过在xml配置文件或者代码中进行布局。
1、Frame Layout是最简单的布局方式,放置的控件都只能罗列到左上角,控件会有重叠,不能进行复杂的布局。
2、Linear Layout可以通过orientation属性设置线性排列的方向是垂直还是纵向的,每行或每列只有一个元素,可以进行复杂的布局。
3、Absolute Layout可以让子元素指定准确的x、y坐标值,并显示在屏幕上。Absolute Layout没有页边框,允许元素之间相互重叠。它是绝对坐标,所以在实际中不提倡使用。
4、Relative Layout允许子元素制定他们相对于其他元素或父元素的位置(通过ID制定)。因此,你可以以右对齐,或上下,或置于屏幕中央的形式来排列两个元素。元素按顺序排列,因此如果第一个元素在屏幕的中央,那么相对于这个元素的其他元素将以屏幕中央的相对位置来排列。这个是相对于Absolute
Layout的,采用相对坐标,所以在实际中比较常用。
18. ListView如何提高其效率?
答:1、使用分页加载,不要一次性加载所有数据。
2、复用convertView。在getItemView中,判断converView是否为空,如果不为空,可复用。
3、异步加载图片。Item中如果包含有webimage,那么最好异步加载。
4、快速滑动时,不显示图片。当快速滑动列表(SCROLL_STATE_FLING),item中的图片或获取需要消耗资源的view,可以不显示出来;而处于其他两种状态(SCROLL_STATE_IDLE和SCROLL_STATE_TOUCH_SCROLL),则将那些view显示出来
r机制的原理
答:andriod提供了 Handler 和 Looper 来满足线程间的通信。Handler 先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(Message Exchange)。
1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的Message Queue(消息队列)。
2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到Message Queue里;或者接收Looper从Message Queue取出)所送来的消息。
3) Message Queue(消息队列):用来存放线程放入的消息。
4)线程:UI thread 通常就是main thread,而Android启动程序时会替它建立一个Message
Queue。
20. Adapter有什么作用?列出至少三种适配器,并给出每种适配器的主要用途。
adapter是数据与ui之间的桥梁,它把后台数据与前端ui连接到一起,是一个展示数据的载体。
BaseAdapter:基础数据适配器,它的主要用途是将一组数据传到例如ListView等UI显示组件,继承自接口类Adapter,由于是基础类型,所以自由度高, 可以修改的地方多。
SimpleAdapter:简单适配器,系统自定义了一些方法,可以重写这些方法。
ArrayAdapter:数据和UI一对一,传入数据源和布局文件,完成显示。
SimpleCursorAdapter:指向性适配器,指向数据库,可以方便地把数据库的内容以列表的形式展示出来
版权声明:本文标题:(带答案)Android复习资料 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1702879164h434365.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论