2023年经典Android面试题带答案.pdf

上传人:无*** 文档编号:93812650 上传时间:2023-07-14 格式:PDF 页数:42 大小:4.11MB
返回 下载 相关 举报
2023年经典Android面试题带答案.pdf_第1页
第1页 / 共42页
2023年经典Android面试题带答案.pdf_第2页
第2页 / 共42页
点击查看更多>>
资源描述

《2023年经典Android面试题带答案.pdf》由会员分享,可在线阅读,更多相关《2023年经典Android面试题带答案.pdf(42页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、.Android 面 试 题 1.下 列 哪 些 语 句 关 于 内 存 回 收 的 说 明 是 对 的 的?(b)A、程 序 员 必 须 创 建 T 线 程 来 释 放 内 存 B、内 存 回 收 程 序 负 责 释 放 无 用 内 存 C、内 存 回 收 程 序 允 许 程 序 员 直 接 释 放 内 存【)、内 存 回 收 程 序 可 以 在 指 定 的 时 间 释 放 内 存 对 象 2.下 面 异 常 是 属 于 Runtime Exception的 是(abed)侈 选)A、ArithmeticExceptionB、IllegalArgumentExceptionC、NullPoi

2、nterExceptionD、BufferUnderflowException3.M ath.round(11.5)?iJ().Math.round(-1 1.5 cA、11,-H B、11,-12 C、12,-11 D、12,-124.下 列 程 序 段 的 输 出 结 果 是:(b)void complicatedexpression_r()int x=20,y=30;boolean b;b=x50&y60|x50&y-60|x60|x-50&y-60;System.out.println(b);)A.true B.false C.1 D.Oil.activity5.对 一 些 资 源 以

3、 及 状 态 的 操 作 保 存,最 佳 是 保 存 在 生 命 周 期 的 哪 个 函 数 中 进 行(d)A、onPause()B、onCreate()C、onResume()D、onStart()6.Intent传 递 数 据 时,下 列 的 数 据 类 型 哪 些 可 以 被 传 递(abed)(多 选)A、Serializable B、charsequence C、Parcelable D、Bundle7.android中 下 列 属 于 Intent的 作 用 的 是(c)A、实 现 应 用 程 序 间 的 数 据 共 享 B、是 一 段 长 的 生 命 周 期,没 有 用 户 界

4、 面 的 程 序,可 以 保 持 应 用 在 后 台 运 营,而 不 会 由 于 切 换 页 面 而 消 失 C、可 以 实 现 界 面 间 的 切 换,可 以 包 含 动 作 和 动 作 数 据,连 接 四 大 组 件 的 纽 带 D、解 决 一 个 应 用 程 序 整 体 性 的 工 作下 列 属 于 SA X解 析 xm l文 献 的 优 点 的 是(b)A、将 整 个 文 档 树 在 内 存 中,便 于 操 作,支 持 删 除,修 改,重 新 排 列 等 多 种 功 能 B、不 用 事 先 调 入 整 个 文 档,占 用 资 源 少 C、整 个 文 档 调 入 内 存,浪 费 时 间

5、和 空 间 D、不 是 长 期 驻 留 在 内 存,数 据 不 是 持 久 的,事 件 过 后,若 没 有 保 存 数 据,数 据 就 会 消 失.下 面 的 对 自 定 style的 方 式 对 的 的 是(a)A、fill_parentB、fill_parentC、fill_parentD、fill_parent10.在 android中 使 用 M enu时 也 许 需 要 重 写 的 方 法 有(ac)。(多 选)A、onCreateOptionsMenuQB、onCreateMenu()C、onOptionsItemSelected()D、onItemSelected()11.在 S

6、QL Server Management Studio 中 运 营 下 列 T-SQL 语 句,其 输 出 值(c)。SELECT IDENTITYA、也 许 为 0.1B、也 许 为 3C、不 也 许 为-100D、肯 定 为 012.在 SQL Server 2023中 运 营 如 下 T-SQL语 句,假 定 SALES表 中 有 多 行 数 据,执 行 查 询 之 后 的 结 果 是(d)oBEGIN TRANSACTION AUpdate SALES Set qty=30 WHERE qly30BEGIN TRANSACTION BUpdate SALES Set qty=40 WH

7、ERE qty40Update SALES Set qty=50 WHERE qty50Update SALES Set qty=60 WHERE qty60COMMIT TRANSACTION BCOMMIT TRANSACTION AA、SALES表 中 qty列 最 小 值 大 于 等 于 30Bs SALES表 中 qty列 最 小 值 大 于 等 于 40C、SALES表 中 qty列 的 数 据 所 有 为 50D、SALES表 中 qty列 最 小 值 大 于 等 于 6013.在 android中 使 用 SQLiteOpenHelper这 个 辅 助 类 时,可 以 生 成

8、一 个 数 据 库,并 可 以 对 数 据 库 版 本 进 行 管 理 的 方 法 可 以 是(ab)A、getWriteableDatabase()B、getReadableDatabase()C、getDatabase()D、getAbleDatabase()14.android关 于 service生 命 周 期 的 onCreate。和 onStart。说 法 对 的 的 是(ad)侈 选 题)A、当 第 一 次 启 动 的 时 候 先 后 调 用 onCreate。和 onStart。方 法 B、当 第 一 次 启 动 的 时 候 只 会 调 用 onCreale。方 法 C、假 如

9、 service已 经 启 动,将 先 后 调 用 onCreate。和 onStart。方 法 D、假 如 service已 经 启 动,只 会 执 行 onStart。方 法,不 在 执 行 onCreate。方 法 15.下 面 是 属 于 GLSurFaceView特 性 的 是(abc)侈 选)A、管 理 一 个 surface,这 个 surface就 是 一 块 特 殊 的 内 存,能 直 接 排 版 到 android的 视 图 view JtoB、管 理 一 於 EGL display,它 能 让 opengl把 内 容 渲 染 至 U 上 述 的 surface上。C、让

10、渲 染 器 在 独 立 的 线 程 里 运 作,和 U I线 程 分 离。D、可 以 直 接 从 内 存 或 者 DM A等 硬 件 接 口 取 得 图 像 数 据 1 6.下 面 在 AndroidManifest.xml 文 献 中 注 册 BroadcastReceiver 方 式 对 的 的(a)A、actionandroid:nB、android:name=android.providenaction.NewBroad/C、receiver android:name=NewBroadD、android:name=android.provider.action.NewBroad17.关

11、 于 ContenValues类 说 法 对 的 的 是(a)A、他 和 Hashtable比 较 类 似,也 是 负 责 存 储 一 些 名 值 对,但 是 他 存 储 的 名 值 对 当 中 的 名 是 String类 型,而 值 都 是 基 本 类 型 B、他 和 Hashtable比 较 类 似,也 是 负 责 存 储 一 些 名 值 对,但 是 他 存 储 的 名 值 对 当 中 的 名 是 任 意 类 型,而 值 都 是 基 本 类 型 C、他 和 Hashtable比 较 类 似,也 是 负 责 存 储 一 些 名 值 对,但 是 他 存 储 的 名 值 对 当 中 的 名,可

12、认 为 空,而 值 都 是 String类 型 D、他 和 Hashtable比 较 类 似,也 是 负 责 存 储 一 些 名 值 对,但 是 他 存 储 的 名 值 对 当 中 的 名 是 String类 型,而 值 也 是 String类 型 18.我 们 都 知 道 Hanlder是 线 程 与 Activity通 信 的 桥 梁,假 如 线 程 解 决 不 妥,你 的 机 器 就 会 变 得 越 慢,那 么 线 程 销 毁 的 方 法 是(a)A、onDestroy()B、onClear()C、onFinish()D、onStop()19.下 面 退 出 Activity错 误 的

13、方 法 是(c)A、finish()B、抛 异 常 强 制 退 出 C、System.exit()D、onStopO20.下 面 属 于 android的 动 画 分 类 的 有(ab)(多 项)A、Tween B、Frame C、Draw D、Animation21.下 面 关 于 Android dvm的 进 程 和 Linux的 进 程,应 用 程 序 的 进 程 说 法 对 的 的 是(d)A、DVM指 dalivk的 虚 拟 机.每 一 个 Android应 用 程 序 都 在 它 自 己 的 进 程 中 运 营,不 一 定 拥 有 一 个 独 立 的 Dalv汰 虚 拟 机 实 例

14、.而 每 一 个 DVM都 是 在 L in u x中 的 一 个 进 程,所 以 说 可 以 认 为 是 同 一 个 概 念.B、DVM指 dalivk的 虚 拟 机 每 一 个 Android应 用 程 序 都 在 它 自 己 的 进 程 中 运 营,不 一 定 拥 有 一 个 独 立 的 D aM k虚 拟 机 实 例.而 每 一 个 DVM不 一 定 都 是 在 L in u x中 的 一 个 进 程.所 以 说 不 是 一 个 概 念.C、DVM指 dalivk的 虚 拟 机 每 一 个 Android应 用 程 序 都 在 它 自 己 的 进 程 中 运 营 者 B 拥 有 一 个

15、 独 立 的 Dalvik虚 拟 机 实 例.而 每 一 个 DVM不 一 定 都 是 在 L in u x中 的 一 个 进 程,所 以 说 不 是 一 个 概 念.D、DVM指 dalivk的 虚 拟 机.每 一 个 Android应 用 程 序 都 在 它 自 己 的 进 程 中 运 营,都 拥 有 一 个 独 立 的 Dalvik虚 拟 机 实 例.而 每 一 个 DVM都 是 在 L in u x中 的 一 个 进 程,所 以 说 可 以 认 为是 同 一 个 概 念.22.Android项 目 工 程 下 面 的 assets目 录 的 作 用 是 什 么 bA、放 置 应 用 到

16、 的 图 片 资 源。B、重 要 放 置 多 媒 体 等 数 据 文 献 C、放 置 字 符 串,颜 色,数 组 等 常 量 数 据 D、放 置 一 些 与 U I相 应 的 布 局 文 献,都 是 xml文 献 23.关 于 res/raw目 录 说 法 对 的 的 是(a)A、这 里 的 文 献 是 原 封 不 动 的 存 储 到 设 备 上 不 会 转 换 为 二 进 制 的 格 式 B、这 里 的 文 献 是 原 封 不 动 的 存 储 到 设 备 上 会 转 换 为 二 进 制 的 格 式 C、这 里 的 文 献 最 终 以 二 进 制 的 格 式 存 储 到 指 定 的 包 中 D

17、、这 里 的 文 献 最 终 不 会 以 二 进 制 的 格 式 存 储 到 指 定 的 包 中 24.下 列 对 android N D K的 理 解 对 的 的 是(abed)A、NDK是 一 系 列 工 具 的 集 合 B、N D K提 供 了 一 份 稳 定、功 能 有 限 的 A P I头 文 献 声 明。C、使 Java+C的 开 发 方 式 终 于 转 正,成 为 官 方 支 持 的 开 发 方 式 D、N D K将 是 Android平 台 支 持 C 开 发 的 开 端二.填 空 题25.android 中 常 用 的 四 个 布 局 是 framlayout 1Hliena

18、rlayout 1relativelayout 和 tablelayout。26.android 的 四 大 组 件 是 activity,service.broadcast 和 contentprovide。27.java.io 包 中 的 objectinputstream 和 objectoutputstream 类 重 要 用 于 对 对 象(Object)的 读 写。28.android 中 service 的 实 现 方 法 是:startservice 和 bindservice。29.activity 一 般 会 重 载 7 个 方 法 用 来 维 护 其 生 命 周 期,除

19、了 onCreate(),onStart(),oiiDestory()外 尚 有 onrestart,cnreume,onDause,oestop。30.android 的 数 据 存 储 的 方 式 sharedpreference,文 献,SQite,contentnrovidriP 3 3 1.当 启 动 一 个 Activity并 且 新 的 Activity执 行 完 后 需 要 返 回 到 启 动 它 的 Activity来 执 行 的 回 调 函 数 是 start回 tivityResult。3 2.请 使 用 命 令 行 的 方 式 创 建 一 个 名 字 为 myAvd,s

20、dk版 本 为 2 2 s d 卡 是 在 d 盘 的 根 目 录 下,名 字 为 scard.img,并 指 定 屏 幕 大 小 H V G A.。33.程 序 运 营 的 结 果 是:Rood and g b c(public class Example(String str=new String(good);char 口 ch=a,b,c;public static void main(String args)Example ex=new Example();ex.change(ex.str,ex.ch);System,out.print(ex.str+z,and);Sytem.out.

21、print(ex.ch);public void change(String str,char ch)str=test ok”;ch0=g;)34.在 android中,请 简 述 jn i的 调 用 过 程。(8 分)1)安 装 和 下 载 Cygwin,下 载 Android NDK2)在 ndk项 目 中 JN1接 口 的 设 计 3)使 用 C/C+实 现 本 地 方 法 4)JNI生 成 动 态 链 接 库.so文 献 5)将 动 态 链 接 库 复 制 到 java工 程,在 java工 程 中 调 用,运 营 java工 程 即 可 35.简 述 Android应 用 程 序 结

22、 构 是 哪 些?(7 分)Android应 用 程 序 结 构 是:Linux Kernel(Linux 内 核)、Libraries(系 统 运 营 库 或 者 是 C/C+核 心 库)、ApplicationFramework(开 发 框 架 包)、Applications(核 心 应 用 程 序)3 6.请 继 承 SQLiteOpenHelper 实 现:(10 分)1).创 建 一 个 版 本 为 I 的 MdiaryOpenHelper.dbM的 数 据 库,2).同 时 创 建 一 个 diary 表(包 含 一 个 _ id主 键 并 自 增 长,topic字 符 型 100

23、长 度,content字 符 型 1000长 度)3).在 数 据 库 版 本 变 化 时 请 删 除 diary表,并 重 新 创 建 出 diary表。public class DBHelper extends SQLiteOpenHelper public final static String DATABASENAME=ndiaryOpenHelper.dbr;public final static int DATABASEVERSION=1;创 建 数 据 库 public DBHelper(Context context,String name,CursorFactory fact

24、ory,int version)(super(context,name,factory,version);创 建 表 等 机 构 性 文 献 public void onCreate(SQLiteDatabase db)(String sql=create table diary+“(“+”_id integer primary key autoincrement,n+Htopic varchar(100);+content varchar(1000)n+db.execSQL(sql);若 数 据 库 版 本 有 更 新,则 调 用 此 方 法 public void onUpgrade(SQ

25、LiteDatabase db,int oldVersion,int newVersion)(String sql=drop table if exists diary;db.execSQL(sql);this.onCreate(db);3 7.页 面 上 现 有 ProgressBar控 件 progressBar,请 用 书 写 线 程 以 10秒 的 的 时 间 完 毕 其 进 度 显 示 工 作。(10分)答 案 public class ProgressBarStu extends Activity private ProgressBar progressBar=null;prote

26、cted void onCreate(Bundle savedlnstanceState)super.onCreate(savedlnstanceState);setContentView(R.layout.progressbar);从 这 到 下 是 关 键 progressBar=(ProgressBar)findViewByld(R.id.progressBar);Thread thread=new Thread(new Runnable()Overridepublic void run()int progressBarMax=progressBar.getMax();try(while

27、(progressBarMax!=progressBar.getProgress()(int stepProgress=progressBarMax/10;int currentprogress=progressBar.getProgress();progressBar.setProgress(currentprogress+stepProgress);Thread.sleep(l 000);)catch(InterruptedException e)/TODO Auto-generated catch blocke.printStackTrace(););thread.stail();关 键

28、 结 束38.请 描 述 下 Activity的 生 命 周 期。必 调 用 的 三 个 方 法:onCreate()-onStart()-onResume(),用 AAA 表 达(1)父 Activity启 动 子 Activity,子 Actvity退 出,父 Activity调 用 顺 序 如 下 AAA onFreeze()onPause()onStopO onRestart()onStart(),onResume().(2)用 户 点 击 Home,Actvity调 用 顺 序 如 下 AAA onFreeze()onPause()onStopO Maybe-onDestroy()-

29、Maybe(3)调 用 finish(),Activity调 用 顺 序 如 下 AAA-onPause()-onStopO onDestroyO(4)在 Activity上 显 示 dialog,Activity调 用 顺 序 如 下 AAA(5)在 父 Activity上 显 示 透 明 的 期 E全 屏 的 activity,Activity调 用 顺 序 如 下 AAA onFreeze()onPause()(6)设 备 进 入 睡 眠 状 态,Activity调 用 顺 序 如 下 AAA onFreeze()onPause()39.假 如 后 台 的 Activity由 于 某 因

30、 素 被 系 统 回 收 了,如 何 在 被 系 统 回 收 之 前 保 存 当 前 状 态?onSaveInstanceState()当 你 的 程 序 中 某 一 个 Activity A 在 运 营 时,积 极 或 被 动 地 运 营 另 一 个 新 的 Activity B,这 个 时 候 A 会 执 行 onSavelnstanceStateOo B 完 毕 以 后 又 会 来 找 A,这 个 时 候 就 有 两 种 情 况:一 是 A 被 回 收,二 是 A 没 有 被 回 收,被 回 收 的 A 就 要 重 新 调 用 onCreate()方 法,不 同 于 直 接 启 动 的

31、是 这 回 onCreate。里 是 带 上 了 参 数 savedlnstanceState;而 没 被 收 回 的 就 直 接 执 行 onResume(),跳 过 onCreate。了。40.如 何 将 一 个 Activity设 立 成 窗 口 的 样 式。在 AndroidManifest.xml 中 定 义 Activity 的 地 方 一 句 话 android:theme=android:style/Theme.Dialog”或 android:theme=android:style/Theme.Translucent就 变 成 半 透 明 的 41.如 何 退 出 Activ

32、ity?如 何 安 全 退 出 已 调 用 多 个 Activity的 Application?对 于 单 一 Activity的 应 用 来 说,退 出 很 简 朴,直 接 finish。即 可。当 然,也 可 以 用 killProcess。和 System.exit。这 样 的 方 法。但 是,对 于 多 Activity的 应 用 来 说,在 打 开 多 个 Activity后,假 如 想 在 最 后 打 开 的 Activity直 接 退 出,上 边 的 方 法 都 是 没 有 用 的,由 于 上 边 的 方 法 都 是 结 束 一 个 Activity而 已。当 然,网 上 也 有

33、 人 说 可 以。就 仿 佛 有 人 问,在 应 用 里 如 何 捕 获 Home键,有 人 就 会 说 用 keyCode比 较 KEYCODE_HOME即 可,而 事 实 上 假 如 不 修 改 framework,主 线 不 也 许 做 到 这 一 点 同 样。所 以,最 佳 还 是 自 己 亲 自 试 一 下。那 么,有 没 有 办 法 直 接 退 出 整 个 应 用 呢?在 2.1 之 前,可 以 使 用 ActivityManager 的 restartPackage 方 法。它 可 以 直 接 结 束 整 个 应 用。在 使 用 时 需 要 权 限 android.permiss

34、ion.RESTART_PACKAGES0注 意 不 要 被 它 的 名 字 迷 惑。可 是,在 2.2,这 个 方 法 失 效 了。在 2.2添 加 了 一 个 新 的 方 法,killBackgroundProcesses(),需 要 权 限 android.permission.KILL_BACKGROUND_PROCESSES0可 惜 的 是,它 和 2.2的 restartPackage同 样,主 线 起 不 到 应 有 的 效 果。此 外 尚 有 一 个 方 法,就 是 系 统 自 带 的 应 用 程 序 管 理 里,强 制 结 束 程 序 的 方 法,forceStopPacka

35、ge()o它 需 要 权 限 android.permission.FORCE_STOP_PACKAGESo并 且 需 要 添 加 android:sharedUserId=android.uid.system”属 性 同 样 可 惜 的 是,该 方 法 是 非 公 开 的,他 只 能 运 营 在 系 统 进 程,第 三 方 程 序 无 法 调 用。由 于 需 要 在 Android.mk 中 添 加 LOCAL_CERTIFICATE:=platform.而 Android.mk是 用 于 在 Android源 码 下 编 译 程 序 用 的。从 以 上 可 以 看 出,在 2.2,没 有

36、办 法 直 接 结 束 一 个 应 用,而 只 能 用 自 己 的 办 法 间 接 办 到。现 提 供 几 个 方 法,供 参 考:1、抛 异 常 强 制 退 出:该 方 法 通 过 抛 异 常,使 程 序 Force Close。验 证 可 以,但 是,需 要 解 决 的 问 题 是,如 何 使 程 序 结 束 掉,而 不 弹 出 Force Close的 窗 口。2、记 录 打 开 的 Activity:每 打 开 一 个 Activity,就 记 录 下 来。在 需 要 退 出 时,关 闭 每 一 个 Activity即 可。3、发 送 特 定 广 播:在 需 要 结 束 应 用 时,发

37、 送 一 个 特 定 的 广 播,每 个 Activity收 到 广 播 后,关 闭 即 可。4、递 归 退 出 在 打 开 新 的 Activity时 使 用 startActivityForResult,然 后 自 己 加 标 志,在 onActivityResult中 解 决,递 归 关 闭。除 了 第 一 个,都 是 想 办 法 把 每 一 个 Activity都 结 束 掉,间 接 达 成 目 的。但 是 这 样 做 同 样 不 完 美。你 会 发 现,假 如 自 己 的 应 用 程 序 对 每 一 个 Activity都 设 立 了 nosensor,在 两 个 Activity结

38、 束 的 间 隙,sensor也 许 有 效 了。但 至 少,我 们 的 目 的 达 成 了,并 且 没 有 影 响 用 户 使 用。为 了 编 程 方 便,最 佳 定 义 一 个 Activity基 类,解 决 这 些 共 通 问 题。4 2.请 介 绍 下 Android中 常 用 的 五 种 布 局。FrameLayout(框 架 布 局),LinearLayout(线 性 布 局),AbsoluteLayout(绝 对 布 局),RelativeLayout(相 对 布 局),TableLayout(表 格 布 局)4 3.请 介 绍 下 Android的 数 据 存 储 方 式。一.

39、SharedPreferences 方 式 二.文 献 存 储 方 式 三.SQLite数 据 库 方 式 四.内 容 提 供 器(Content provider)方 式 五.网 络 存 储 方 式 44.请 介 绍 下 ContentProvider是 如 何 实 现 数 据 共 享 的。创 建 一 个 属 于 你 自 己 的 Content provider或 者 将 你 的 数 据 添 加 到 一 个 已 经 存 在 的 Contentprovider中,前 提 是 有 相 同 数 据 类 型 并 且 有 写 入 Content provider的 权 限。45.如 何 启 用 Ser

40、vice,如 何 停 用 Service。Android中 的 service类 似 于 windows中 的 service,service 一 般 没 有 用 户 操 作 界 面,它 运 营 于 系 统 中 不 容 易 被 用 户 发 现,可 以 使 用 它 开 发 如 监 控 之 类 的 程 序。o 环 节 第 一 步:继 承 Service类 public class SMSService extends Service 第 二 步:在 AndroidManifest.xml文 献 中 的 application 节 点 里 对 服 务 进 行 配 置:二。Context.stailS

41、ervice()n Context.bindService服 务 不 能 自 己 运 营,需 要 通 过 调 用 Context.startService。或 Context.bindService。方 法 启 动 服务。这 两 个 方 法 都 可 以 启 动 Service,但 是 它 们 的 使 用 场 合 有 所 不 同。1.使 用 startService。方 法 启 用 服 务,调 用 者 与 服 务 之 间 没 有 关 连,即 使 调 用 者 退 出 了,服 务 仍 然 运 营。使 用 bindService。方 法 启 用 服 务,调 用 者 与 服 务 绑 定 在 了 一 起,

42、调 用 者 一 旦 退 出,服 务 也 就 终 止。2.采 用 Context.startService。方 法 启 动 服 务,在 服 务 未 被 创 建 时,系 统 会 先 调 用 服 务 的 onCreate。方 法,接 着 调 用 onStart。方 法。假 如 调 用 startService。方 法 前 服 务 已 经 被 创 建 多 次 调 用 startService()方 法 并 不 会 导 致 多 次 创 建 服 务,但 会 导 致 多 次 调 用 onStart。方 法。采 用 startService。方 法 启 动 的 服 务,只 能 调 用 Context.stop

43、Service。方 法 结 束 服 务,服 务 结 束 时 会 调 用 onDestroyO 方 法。3.采 用 Context.bindService()方 法 启 动 服 务,在 服 务 未 被 创 建 时,系 统 会 先 调 用 服 务 的 onCreate()方 法,接 着 调 用 onBind()方 法。这 个 时 候 调 用 者 和 服 务 绑 定 在 一 起,调 用 者 退 出 了,系 统 就 会 先 调 用 服 务 的 onUnbind()方 法,o 接 着 调 用 onDestroyO方 法。假 如 调 用 bindService()方 法 前 服 务 已 经 被 绑 定,多

44、 次 调 用 bindService()方 法 并 不 会 导 致 多 次 创 建 服 务 及 绑 定(也 就 是 说 onCreate。和 onBind()方 法 并 不 会 被 多 次 调 用)。懒 口 调 用者 希 望 与 正 在 绑 定 的 服 务 解 除 绑 定,可 以 调 用 unbindService()方 法,调 用 该 方 法 也 会 导 致 系 统 调 用 服 务 的 onUnbind()-on Destroy()方 法。三。Service的 生 命 周 期 1.Service常 用 生 命 周 期 回 调 方 法 如 下:onCreate()该 方 法 在 服 务 被 创

45、 建 时 调 用,该 方 法 只 会 被 调 用 一 次,无 论 调 用 多 少 次 startService()或 bindService。方 法,服 务 也 只 被 创 建 一 次。onDestroy。该 方 法 在 服 务 被 终 止 时 调 用。2.Context.startService。启 动 Service有 关 的 生 命 周 期 方 法 onStart()只 有 采 用 Context.startService()方 法 启 动 服 务 时 才 会 回 调 该 方 法。该 方 法 在 服 务 开 始 运 营 时 被 调 用。多 次 调 用 startService。方 法 尽

46、 管 不 会 多 次 创 建 服 务,但 onStart()方 法 会 被 多 次 调 用。3.Context.bindService。启 动 Service有 关 的 生 命 周 期 方 法 onBind()只 有 采 用 Context.bindService()方 法 启 动 服 务 时 才 会 回 调 该 方 法。该 方 法 在 调 用 者 与 服 务 绑 定 期 被 调 用,当 调 用 者 与 服 务 已 经 绑 定,多 次 调 用 Context.bindService()方 法 并 不 会 导 致 该 方 法 被 多 次 调 用。onUnbind。只 有 采 用 Context.

47、bindService。方 法 启 动 服 务 时 才 会 回 调 该 方 法。该 方 法 在 调 用 者 与 服 务 解 除 绑 定 期 被 调 用。备 注:1.采 用 startService。启 动 服 务 Intent intent=new Intent(DemoActivity.this,DemoService.class);startService(intent);2.Context.bindService()启 动 Intent intent=new Intent(DemoActivity.this,DemoService.class);bindService(intent,co

48、nn,Context.BIND_AUTO_CREATE);/unbindService(conn);/解 除 绑 定 4 6.注 册 广 播 有 几 种 方 式,这 些 方 式 有 何 优 缺 陷?请 谈 谈 Android引 入 广 播 机 制 的 用 意。Android广 播 机 制(两 种 注 册 方 法)在 android下,要 想 接 受 广 播 信 息,那 么 这 个 广 播 接 受 器 就 得 我 们 自 己 来 实 现 了,我 们 可 以 继 承 BroadcastReceiver,就 可 以 有 一 个 广 播 接 受 器 了。有 个 接 受 器 还 不 够,我 们 还 得

49、重 写 BroadcastReceiver里 面 的 onReceiver方 法,当 来 广 播 的 时 候 我 们 要 干 什 么,这 就 要 我 们 自 己 来 实 现,但 是 我 们 可 以 搞 一 个 信 息 防 火 墙。具 体 的 代 码:public class SmsBroadCastReceiver extends BroadcastReceiver(Overridepublic void onReceive(Context context,Intent intent)(Bundle bundle=intent.getExtras();Objectf object=(Objec

50、t)bundle.get(Hpdusn);SmsMessage sms=new SmsMessageobject.lengthJ;for(int i=0;iobject.lengih;i+)smsO=SmsMessage.createFromPdu(byte)objecti);Toast.makeText(context,5|?H+smsi.getDisplayOriginatingAddress()+的 消 息 是:H+smsi.getDisplayMessageBody(),Toast.LENGTH_SHORT).show();)终 止 广 播,在 这 里 我 们 可 以 稍 微 解 决,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com