2023年經(jīng)典Android面試題帶答案_第1頁
2023年經(jīng)典Android面試題帶答案_第2頁
2023年經(jīng)典Android面試題帶答案_第3頁
2023年經(jīng)典Android面試題帶答案_第4頁
2023年經(jīng)典Android面試題帶答案_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1….Android面試題

2.下列哪些語句有關(guān)內(nèi)存回收的闡明是對(duì)

的的?(b)

A.程序員必須創(chuàng)立一種線程來釋放內(nèi)存

B.內(nèi)存回收程序負(fù)責(zé)釋放無用內(nèi)存

C.內(nèi)存回收程序容許程序員直接釋放內(nèi)存

3.D.內(nèi)存回收程序可以在指定的時(shí)間釋

放內(nèi)存對(duì)象

4.下面異常是屬于RuntimeException

的是(abed)侈選)

A.ArithmeticException

B.IllegalArgumentException

C.NullPointerException

5.D.BufferUnderflowException

Math.round(11.5)等于多少().Math.round(-11.5)等于多少(,).c

6.A.ll,-HB.ll,-12

C.12f-llD.12f-12

下列程序段時(shí)輸出成果是:(b)

voidcomplicatedexpression_r(){

intx=20.y=30;

booleanb;

b=x>50&&y>60||x>50&&y<-60||x<-50&&y>60||x<-50&&y<-60;

System.out.println(b);

)

A.trueB、falseC、1D、011.activity

對(duì)某些資源以及狀態(tài)的操作保留,最佳是保留在生命周期的哪個(gè)函數(shù)中進(jìn)行(d)

A.onPauseOB.onCre&teOC.onResume()D.onSLartO

Intent傳遞數(shù)據(jù)時(shí).下列的數(shù)據(jù)類型哪些可以被傳遞(abed)(多選)

7.A.SerializableB.

charsequenceC.ParcelableD.

Bundle

8.android中下列屬于Intent的作用的是

(c)

A.實(shí)現(xiàn)應(yīng)用程序間R勺數(shù)據(jù)共享

B.是一段長(zhǎng)的生命周期、沒有顧客界面的程序、可以保持應(yīng)用在后臺(tái)運(yùn)行、而不會(huì)由于切

換頁面而消失

C、可以實(shí)現(xiàn)界面間的切換,可以包括動(dòng)作和動(dòng)作數(shù)據(jù).連接四大組件的紐帶

9.D.處理一種應(yīng)用程序整體性的工作

10.下列屬于SAX解析xml文獻(xiàn)的長(zhǎng)處的

是(b)

A.將整個(gè)文檔樹在內(nèi)存中,便于操作,支持刪除.修改,重新排列等多種功能

B.不用事先調(diào)入整個(gè)文檔,占用資源少

C.整個(gè)文檔調(diào)入內(nèi)存,揮霍時(shí)間和空間

12.在android中使用Menu時(shí)也許需

要重寫的措施有(acl(多選)

A.onCreateOptionsMenu()

B.onCreateMenuO

C.onOptionsItemSelectedO

13.D.onItemSelected()

在SQLServerManagementStudio中運(yùn)行下列T-SQL語句、其輸出值(c

SELECT@@IDENTITY

A.也許為0.1

B.也許為3

C.不也許為-100

14.D.肯定為0

在SQLServer2023中運(yùn)行如下T-SQL語句,假定SALES表中有多行數(shù)據(jù),執(zhí)行查詢之后

的成果是(d1

BEGINTRANSACTIONA

UpdateSALESSetqiy=30WHEREqty<30

BEGINTRANSACTIONB

UpdateSALESSetqty=40WHEREqty<40

UpdateSALESSecqly=5OWHEREq(y<50

UpdateSALESSetqty=6OWHEREqty<60

COMMITTRANSACTIONB

COMMITTRANSACTIONA

A.SALES表中qiy列最小值不小于等于30

B.SALES表中qty列最小值不小于等于40

C.SALES表中qty列的數(shù)據(jù)所有為50

15.D.SALES表中qty列最小值不小于等

于60

在android中使用SQLiteOpenHelper這個(gè)輔助類時(shí),可以生成一種數(shù)據(jù)庫,并可以對(duì)數(shù)據(jù)庫版

本進(jìn)行管理B勺措施可以是lab)

A.getWriteableDalabaseO

B.getReadableDatabase()

C.getDatabaseO

16.D.getAbleDatabaseQ

17.android有關(guān)service生命周期時(shí)

onCreateOIQonStart。說法對(duì)的的是

(ad)侈選題)

A.當(dāng)?shù)谝淮螁?dòng)的時(shí)候先后調(diào)用onCreale。和onSlarl。措施

B.當(dāng)?shù)谝淮螁?dòng)的時(shí)候只會(huì)調(diào)用onCreate()措施

18.(:?假如service已經(jīng)啟動(dòng),將先

后調(diào)用onCreate。和onStart()措施

19.D、假如service已經(jīng)啟動(dòng),只會(huì)執(zhí)行

onStart()措施,不在執(zhí)行onCreate()措

20.下面是屬于GLSurFaceView特性的是

(abc)侈選)

A.管理一種surface,這個(gè)surface就是一塊特殊的內(nèi)存,能直接排版到android的視圖

view上。

B.管理一種EGLdisplay,它能讓opcngl把內(nèi)容渲染到上述的surface上。

21.C、讓渲染器在獨(dú)立的線程里運(yùn)作,和

UI線程分離。

22.D.可以直接從內(nèi)存或者DMA等硬件

接口獲得圖像數(shù)據(jù)

23.下面在AndroidManifest.xml文獻(xiàn)中

注冊(cè)BroadcastReceiver方式對(duì)的的⑶

A.〈receiverandroid:name="NcwBroad">

<intent-filter>

<action

android:name="androvider.action.NewBroad"!>

<action>

</intent-filter>

〈/receiver〉

B.<receiverandroid:name="NewBroad">

<intent-filter>

android:name="android,provider,action.NewBroad"/>

</intcnt-filtcr>

</receiver>

C.<receiverandroid:name="NewBroad">

<aclion

android:name="vider.acticn.NewBroad"/>

<action>

</receiver>

D.<intent-filter>

<receiverandroid:name="NewBroad'〉

<action>

android:namc="android,provider.action.NewBroad"!>

<action>

</receiver>

</intent-filter>

24.有關(guān)ContenValues類說法對(duì)的的是

(a)

A.他和Hashtable比較類似,也是負(fù)責(zé)存儲(chǔ)某些名值對(duì),不過他存儲(chǔ)的名值對(duì)當(dāng)中

的)

名是String類型,而值都是基本類型

B.他和Hashtable比較類似,也是負(fù)責(zé)存儲(chǔ)某些名值對(duì),不過他存儲(chǔ)的名值對(duì)當(dāng)中

名是任意類型,而值都是基本類型

C.他和Hashtable比較類似,也是負(fù)責(zé)存儲(chǔ)某些名值對(duì),不過他存儲(chǔ)的名值對(duì)當(dāng)中

時(shí)

名,可認(rèn)為空,而值都是String類型

25.D.他和Hashtable比較類似,

也是負(fù)責(zé)存儲(chǔ)某些名值對(duì),不過他存儲(chǔ)

的名值對(duì)當(dāng)中

26.的名是String類型,而值

也是String類型

我們都懂得Hanlder是線程與Activity通信的橋梁.假如線程處理不妥.你的)機(jī)器就會(huì)變得越慢.

那么線程銷毀的措施是(a)

A.onDestroy()

B.onClear()

C.onFinish()

27.D.onStopO

28.下面退出Activity錯(cuò)誤的措施是(c)

A.finish()

B.拋異常強(qiáng)制退出

C.System.exitO

29.DeOnStopQ

30.下面屬于android的動(dòng)畫分類的有

(ab)(多項(xiàng))

31.A.TweenB.FrameC.Draw

0eAnimation

32.下面有關(guān)Androiddvm的進(jìn)程和

Linux的進(jìn)程,應(yīng)用程序的進(jìn)程說法對(duì)的

的是(d)

A.DVM指dalivk的虛擬機(jī).每一種Android應(yīng)用程序都在之自己的進(jìn)程中運(yùn)行,不一定擁有一種獨(dú)立89

Dalvik虛擬機(jī)實(shí)例.而每一種DVM都是在Linux中的一種進(jìn)程,因此說可以認(rèn)為是同一種概念.

B.DVM指dalivk的虛擬機(jī).每一種Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,不一定

擁有一種獨(dú)立的Dalvik虛擬機(jī)實(shí)例.而每一種DVM不一定都是在Linux中的一種進(jìn)程、因此說

不是一種概念.

C.DVM指dalivk的虛擬機(jī).每一種Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行.都擁有

一種獨(dú)立日勺Dalvik虛擬機(jī)實(shí)例.而每一種DVM不一定都是在Linux中的一種進(jìn)程、因此說不是

一種概念.

33.D.DVM指dalivk的虛擬機(jī).

每一種Android應(yīng)用程序都在它自己的

進(jìn)程中運(yùn)行,都擁有一種獨(dú)立的Dalvik

虛擬機(jī)實(shí)例.而每一種DVM都是在Linux

中的一種進(jìn)程,因此說可以認(rèn)為是同一種

如今

34.Android項(xiàng)目工程下面的a錄ssets

的作用是什么b

A.放置應(yīng)用到的圖片資源.

B.重要放置多媒體等數(shù)據(jù)文獻(xiàn)

35.C.放置字符串,顏色,數(shù)組等常量數(shù)據(jù)

36D、放置某些與UI對(duì)應(yīng)KJ布局文獻(xiàn),都是

xml文獻(xiàn)

37.有關(guān)res/raw錄說法對(duì)的的是(a)

A.這里的文獻(xiàn)是原封不動(dòng)的存儲(chǔ)到設(shè)備上不會(huì)轉(zhuǎn)換為二進(jìn)制的格式

B.這里的文獻(xiàn)是原封不動(dòng)的存儲(chǔ)到設(shè)備上會(huì)轉(zhuǎn)換為二進(jìn)制的格式

C.這里的文獻(xiàn)最終以二進(jìn)制的格式存儲(chǔ)到指定的包中

38.D.這里的文獻(xiàn)最終不會(huì)以二進(jìn)制的格

式存儲(chǔ)到指定的包中

39.下列對(duì)androidNDK的理解對(duì)的的

是(abed)

A.NDK是一系列工具的箕合

B.NDK提供了一份穩(wěn)定、功能有限的API頭文獻(xiàn)申明。

C、使"Java+C"的開發(fā)方式終于轉(zhuǎn)正,成為官方支持的開發(fā)方式

D.NDK將是Android平臺(tái)支持C開發(fā)R勺開端

二.填空題

40.android中常用的四個(gè)布局是

framlayout,linenarlayout,

relativelayouttablelayouto

的四大組件是

41.androidactivieyf

service,broadcast和

contentprovideo

42.java.io包中的objectinputstream

和objectoutputstream類重要用于對(duì)

對(duì)象(Object)的讀寫。

43.android中service的實(shí)現(xiàn)措施是:

startservicebindserviceo

44.activity一般會(huì)重載7個(gè)措施用來維

護(hù)其生命周期,除了

onCreate()fonStart()fonDestory()

外尚有

onrestart,onresumeronpauseronsto

Po

45.android的數(shù)據(jù)存儲(chǔ)的方式

sharedpreference,文

獻(xiàn),SQIite,contentprovider,網(wǎng)絡(luò)。

46.當(dāng)啟動(dòng)一種Activity并且新的

Activity執(zhí)行完后需要返□到啟動(dòng)它的

Activity來執(zhí)行的□調(diào)函數(shù)是

startActivityResu11()。

47.請(qǐng)使用命令行的方式創(chuàng)立一種名字為

版本為卡是在盤

myAvdfsdk2.2,sdd

時(shí)根目錄下,名字為scard.img,并指定

屏幕大小

HVGA._________________________________

程序運(yùn)行的成果是:goodandgbc

publicclassExample{

Stringstr=newString(*good*);

char[Jch={,a,,:b,,,c,};

publicstaticvoidmain(Stringargs[l){

Exampleex=newExample();

ex.change(ex.str,ox.ch);

System.out.print(ex.str+,/and");

Sytem.out.print(ex.ch);

)

publicvoidchange(Stringstr,charch[])■

str-,,tcstok”;

ch[O]='g';

在android中,請(qǐng)簡(jiǎn)述jni的調(diào)用過程。(8分)

I)安裝和下載Cygwin,下載AndroidNDK

2)在ndk項(xiàng)目中JNI接口的設(shè)計(jì)

3)使用C/C++實(shí)現(xiàn)當(dāng)?shù)卮胧?/p>

4).INI生成動(dòng)態(tài)鏈接庫.so文獻(xiàn)

5)將動(dòng)態(tài)鏈接庫復(fù)制到j(luò)ava工程,在java工程中調(diào)用.運(yùn)行java工程即可

48.簡(jiǎn)述Android應(yīng)用程序構(gòu)造是哪些五7

分)

Android應(yīng)用程序構(gòu)造是:

LinuxKernel(Linux內(nèi)核)、Libraries(系統(tǒng)運(yùn)行庫或者是C/C++關(guān)鍵庫)、Application

Framework(開發(fā)框架包LApplications(關(guān)鍵應(yīng)用程序)

請(qǐng)繼承SQLitcOpcnHelpcr實(shí)現(xiàn):(10分)

I).創(chuàng)立一種版本為I的,,diaryOpenHelper.db//的數(shù)據(jù)庫.

2).同步創(chuàng)立一種"diary"表(包括一種」d主鍵并自增長(zhǎng),topic字符型10()

長(zhǎng)度,content字符型1000長(zhǎng)度)

3).在數(shù)據(jù)庫版本變化時(shí)請(qǐng)刪除diary表.并重新創(chuàng)立出diary表。

publicclassDBHelperextendsSQLiteOpenHelper{

publicfinalstaticStringDATABASENAME="diaryOpenHelper.db";

publicfinalstaticintDATABASEVERSION=I;

〃創(chuàng)立數(shù)據(jù)庫

publicDBHelper(Contextcontext,Stringname,CursorFactoryfactoryjntversion)

{

super(contcxt,name,factory,version);

)

〃創(chuàng)立表等機(jī)構(gòu)性文獻(xiàn)

publicvoidonCreale(SQLiteDatabasedb)

(

Siringsql="creale(ablediary"+

"("+

”_idintegerprimarykeyautoincrement,"+

"topicvarchar(100),n+

"contentvarchar(1000)"+

“)”;

db.execSQL(sql);

)

〃若數(shù)據(jù)庫版本有更新則調(diào)用此措施

publicvoidonUpgrade(SQLiteDa(abasedb,intoldVersionJnlnewVersion)

{

Stringsql="droptableifexistsdiary";

db.execSQL(sql);

this.onCreate(db):

)

)

頁面上既有ProgressBar控件progressBar,請(qǐng)用書寫線程以10秒的)的時(shí)間完畢其進(jìn)度顯示工

作。(10分)

答案

publicclassProgressBarStuextendsActivity{

privateProgressBarprogressBar=null;

protectedvoidonCrea(e(BundlesavedlnstanceS(ate){

super.onCreate(savedlnstanceState);

setContentView(R.gressbar);

〃從這到下是關(guān)鍵

progressBar=(ProgressBar)findVievvByld(R.gressBar);

Threadthread=newThread(newRunnable(){

?Override

publicvoidiiin(){

intprogressBarMax=progressBar.getMax();

try(

whilc(progressBarMax!=progrcssBar.gctProgrcss())

(

inislepProgress=progressBarMax/10;

intcurrentprogress=progressBar.getProgress();

progressBar.selProgress(curren(progress+stepProgress);

Thread.sleep(1000);

}

}catch(InterruptedExceptione){

//TODOAuto-gcncratcdcatchblock

e.printStackTrace();

));

thread.stait();

〃關(guān)犍結(jié)束

49.請(qǐng)描述下Activity的生命周期。

必調(diào)用的三個(gè)措施onCrcatc()->onStart()->onRcsumc(),用AAA表達(dá)

父啟動(dòng)子子

50.(1)ActivityActivityf

Actvity退出,父Activity調(diào)用次序如下

AAA-->onFreezeQ-->onPauseQ

—>onStopO-->onRestart()—>

onStart(),onResume()…

(2)顧客點(diǎn)擊Home,Actvity調(diào)用次序

如下

AAA-->onFreeze()-->onPause()

—>onStopO--Maybe-->

onDestroy()-Maybe

(3)調(diào)用finishO,Activity調(diào)用次序

如下

AAA-->onPause()—>onStopO—>

onDestroy()

(4)在Activity上顯示dialog.

Activity調(diào)用次序如下

AAA

(5)在父Activity上顯示透明的或非全

屏的調(diào)用次序如下

activityfActivity

AAA-->onFreezeQ-->onPauseQ

(6)設(shè)備進(jìn)入睡眠狀態(tài),Activity調(diào)用次

序如下

AAA-->onFreezeQ-->onPauseQ

假如后臺(tái)的Activity由于某原因被系統(tǒng)回收了.怎樣在被系統(tǒng)回收之前保留目前狀態(tài)?

onSaveIns(anceSta(e()

51.當(dāng)你的程序中某一種ActivityA

在運(yùn)行時(shí),積極或被動(dòng)地運(yùn)行另一種新的

ActivityB,這個(gè)時(shí)候A會(huì)執(zhí)行

onSaveInstanceState()oB完畢后來又

會(huì)來找這個(gè)時(shí)候就有兩種狀況:一是

Af

A被回收,二是A沒有被回收,被回收的

A就要重新調(diào)用onCreate。措施,不一

樣于直接啟動(dòng)的是這□onCreate()里是

帶上了參數(shù)savedlnstanceState;而沒

被收回時(shí)就直接執(zhí)行。nResume(),跳

過onCreate()了。

52.怎樣將一種Activity設(shè)置成臼i口的

樣式。

在AndroidManifcsixml中定義Activity的]地方一句話

android:theme="@android:style/Theme.Dialog,,a£

android:theme="@android:style/Theme.Transkicent"就變成半透明的

53.怎樣退出Activity?怎樣安全退出已

調(diào)用多種Activity的Application?

54.對(duì)于單一Activity的應(yīng)用來說,退出很

簡(jiǎn)樸,直接finish。即可。

當(dāng)然,也可以用killProcess()和

System.exit()這樣的措施。

不過,對(duì)于多Activity的應(yīng)用來說,在打

開多種Activity后,假如想在最終打開的

Activity直接退出,上邊的措施都是沒有

用的,由于上邊的措施都是結(jié)束一種

Activity而已。

當(dāng)然,網(wǎng)上也有人說可以。

就仿佛有人問,在應(yīng)用里怎樣捕捉

Home鍵,有人就會(huì)說用keyCode比較

KEYCODE_HOME即可,而實(shí)際上假如

不修改framework,主線不也許做到這

一點(diǎn)同樣。

因此,最佳還是自己親自試一下。

那么,有無措施直接退出整個(gè)應(yīng)用呢?

在2.1之前,可以使用

ActivityManager的restartPackage

措施。

它可以直接結(jié)束整個(gè)應(yīng)用。在使用時(shí)需要

權(quán)限

android.permission.RESTART_PACK

AGESO

注意不要被它的名字困惑。

可是,在2.2,這個(gè)措施失效了。

在2.2添加了一種新的措施,

需要權(quán)

killBackgroundProcesses()f

android.permission.KILL^BACKGRO

UND_PROCESSESo

可惜的是,它和2.2BtJrestartPackage

同樣,主線起不到應(yīng)有的效果。

此外尚有一種措施,就是系統(tǒng)自帶的應(yīng)用

程序管理里,強(qiáng)制結(jié)束程序的措施,

forceStopPackage()o

它需要權(quán)限

android.permission.FORCE_STOP_P

ACKAGESO

并且需要添加

android:sharedUserId=llandroid.ui

d.system”屬性

同樣可惜的是,該措施是非公開的,他只

能運(yùn)行在系統(tǒng)進(jìn)程,第三方程序無法調(diào)

用。

由于需要在Android.mk中添加

LOCAL_CERTIFICATE:=platform。

而Android.mk是用于在Android源碼

下編譯程序用的。

從以上可以看出,在2.2,沒有措施直接

結(jié)束一種應(yīng)用,而只能用自己的措施間接

辦到。

現(xiàn)提供幾種措施,供參照:

1、拋異常強(qiáng)制退出:

該措施通過拋異常,使程序Force

Closeo

驗(yàn)證可以,不過,需要處理的問題是,怎

樣使程序結(jié)束掉,而不彈出ForceClose

的窗口。

2、記錄打開的Activity:

每打開一種Activity,就記錄下來。在需

要退出時(shí),關(guān)閉每種Activity即可。

3、發(fā)送特定廣播:

在需要結(jié)束應(yīng)用時(shí),發(fā)送一種特定的廣播,

每個(gè)Activity收到廣播后,關(guān)閉即可。

4.遞歸退出

在打開新的Activity時(shí)使用

然后自己加標(biāo)

startActivityForResuItf

志,在onActivityResult中處理,遞歸

關(guān)閉。

除了第一種,都是想措施把每一種

Activity都結(jié)束掉,間接到達(dá)目也

不過這樣做同樣不完美。

你會(huì)發(fā)現(xiàn),假如自己的應(yīng)用程序?qū)γ恳环N

Activity都設(shè)置了nosensor,在兩個(gè)

Activity結(jié)束的間隙,sensor也許有效

了。

但至少,我們的目的到達(dá)了,并且沒有影

響顧客使用。

為了編程以便,最佳定義一種Activity基

類,處理這些共通問題。

55.請(qǐng)簡(jiǎn)介下Android中常用的五種布局。

56.FrameLayout(框架布局),

LinearLayout(線性布局),

AbsoluteLayout(絕對(duì)布局),

RelativeLayout(相對(duì)布局),

TableLayout(表格布局)

57.請(qǐng)簡(jiǎn)介下Android的數(shù)據(jù)存儲(chǔ)方式。

一.SharedPreferences方式

二.文獻(xiàn)存儲(chǔ)方式

H.SQLite數(shù)據(jù)庫方式

四.內(nèi)容提供器(Contentprovider)方式

58.五.網(wǎng)絡(luò)存儲(chǔ)方式

59.請(qǐng)簡(jiǎn)介下ContentProvider是怎樣

實(shí)現(xiàn)數(shù)據(jù)共享的。

60.創(chuàng)立一種屬于你自己的Content

provider或者將你的數(shù)據(jù)添加到一種已

經(jīng)存在的Contentprovider中,前提是

有相似數(shù)據(jù)類型并且有寫入Content

provider的權(quán)限。

怎樣啟用Service,怎樣停用Service。

Android中的)service類似于windows中的service,service一般沒有顧客操作界面,它運(yùn)行于

系統(tǒng)中不輕易被顧客發(fā)現(xiàn).

可以使用它開發(fā)如監(jiān)控之類8勺程序。

一。環(huán)節(jié)

第一步:繼承Service類

publicclassSMSServiceextendsService{}

第二步:在AndroidManifcst.xml文獻(xiàn)中代)〈application〉節(jié)點(diǎn)里對(duì)服務(wù)進(jìn)行配置:

<scrviceandroid:naine=,'.DcmoScrvicc"/>

二。Context.startSei-vice(Context.bindSenice

服務(wù)不能自己運(yùn)行*需要通過調(diào)用Context.startServiceOaSContext.bindScrviccO措施啟動(dòng)服

務(wù)。這兩個(gè)措施都可

以啟動(dòng)Service,不過它們的使用場(chǎng)所有所不一樣。

I.使用startService。措施啟用服務(wù),調(diào)用者與服務(wù)之間沒有關(guān)連,雖然調(diào)用者退出了.服務(wù)仍

然運(yùn)行。

使用bindService。措施啟用服務(wù),調(diào)用者與服務(wù)綁定在了一起、調(diào)用者一旦退出,服務(wù)乜就

終止。

2.采用Context.startServiceO措施啟動(dòng)服務(wù)、在服務(wù)未被創(chuàng)立時(shí),系統(tǒng)會(huì)先調(diào)用服務(wù)的

onCreate。措施,

接著調(diào)用onStart。措施。假如調(diào)用startService()措施前服務(wù)已經(jīng)被創(chuàng)立,多次調(diào)用

startService()措施并

不會(huì)導(dǎo)致多次創(chuàng)立服務(wù),但會(huì)導(dǎo)致多次調(diào)用onStartO措施。

采用startScrviceO措施啟動(dòng)的服務(wù),只能調(diào)用Contcxt.siopService()措施結(jié)束服務(wù),服務(wù)結(jié)束

時(shí)會(huì)調(diào)用

onDestroy。措施。

3.采用Contexi.bindServiceO措施啟動(dòng)服務(wù)在服務(wù)未被倉(cāng)位時(shí),系統(tǒng)會(huì)先調(diào)用服務(wù)的

onCreate。措施,

接著調(diào)用onBind。措施。這個(gè)時(shí)候調(diào)用者和服務(wù)綁定在一起.調(diào)用者退出了,系統(tǒng)就會(huì)先調(diào)

用服務(wù)的onUnbind。措施.

o接著調(diào)用onDcstroyO措施。假如調(diào)用bindScrvice。措施前服務(wù)已經(jīng)被綁定,多次調(diào)用

bindService()措施并不會(huì)

導(dǎo)致多次創(chuàng)立服務(wù)及綁定!也就是說onCrcate()和onBind()措施并不會(huì)被多次調(diào)用)。假如調(diào)用

者但愿與正在綁定的服務(wù)

解除綁定,可以調(diào)用unbindService()m.調(diào)用該措施也會(huì)導(dǎo)致系統(tǒng)調(diào)用服務(wù)的

onUnbind()-->onDeslroy()措施。

三。Service的生命周期

1.Service常用生命周期回凋措施如下:

onCreate()該措施在服務(wù)被創(chuàng)立時(shí)調(diào)用,該措施只會(huì)被調(diào)用一次,無論調(diào)用多少次

startServicc?;騜indScrvicc。措施,

服務(wù)也只被創(chuàng)立一次。onDcstroy()該措施在服務(wù)被終止時(shí)調(diào)用。

2.Context.sumScrvicc()啟動(dòng)Service有關(guān)的生命周期措施

onStart()只有采用Context.s【anService()措施啟動(dòng)服務(wù)時(shí)才會(huì)回調(diào)該措施。該措施在服務(wù)開

始運(yùn)行時(shí)被調(diào)用。

多次調(diào)用slartService。措施盡管不會(huì)多次創(chuàng)立服務(wù)但。nSlart()措施會(huì)被多次調(diào)用。

3.Context.bindService()啟動(dòng)Service有關(guān)的生命周期措施

onBind()只有采用ContextbindService。措施啟動(dòng)服務(wù)時(shí)才會(huì)回調(diào)該措施。該措施在調(diào)用者與

服務(wù)綁定期被調(diào)用.

當(dāng)調(diào)用者與服務(wù)已經(jīng)綁定.多次調(diào)用Contcxt.bindScrvice〔)措施并不會(huì)導(dǎo)致該措施被多次調(diào)

用。

onUnbind。只有采用Con〔ext.bindService()措施啟動(dòng)服務(wù)時(shí)才會(huì)回調(diào)該措施。該措施在調(diào)用者

與服務(wù)解除綁定期被調(diào)用。

備注

1.采用startService()啟動(dòng)服務(wù)

Intentintent=newIntcnt(DcmoActivity.this,DcmoScrvicc.class);

startService(intent);

2.Context.bindService()啟動(dòng)

Intentintent=newIntenl(DemoActivity.this,DemoService.class);

bindService(intent,conn,Context.BIND_AUTO_CREATE);

〃unbindScrvicc(conn);〃解定

注冊(cè)廣播有幾種方式.這些方式有何優(yōu)缺陷?請(qǐng)談?wù)凙ndroid引入廣播機(jī)制的用意。

Android廣播機(jī)制(兩種注冊(cè)措施)

在android下,要想接受廣播信息,那么這個(gè)廣播接受器就得我們自己來實(shí)現(xiàn)了,我們可以

繼承BroadcastRcceiver,就可以有一種廣播接受器了。有個(gè)接受器還不夠,我們還得重寫

BroadcastRcccivcronRcccivcr措施.當(dāng)來廣播的時(shí)候我們要干什么這就要我們自己

來實(shí)現(xiàn).不過我們可以搞一種信息防火墻.詳細(xì)的代碼:

publicclassSmsBroadCastReceiverextendsBroadcastReceiver

(§)Override

publicvoidonRcccivc(Contcxtcontext,Intentintent)

Bundlebundle=inten(.getExtras();

()bject[Jobject=(Object[J)bundle.get("pdus");

SmsMessagesms']=ne\vSmsMessagefobject.length];

for(inti=0;i<object.length;i++)

snis[O]=SmsMessage.createFromPdu((byte[;)object(i]);

Toast.makeText(context,"^<§"+sms[i].getDisplayOriginatingAddress()+"的消

息是:"+sms[i].getDisplayMessageBody(),Toast.LENGTH_SHORT).show();

//終止廣播,在這里我們可以稍微處理,根據(jù)顧客輸入的號(hào)碼可以實(shí)現(xiàn)短信防火

墻。

abortBroadcast();

當(dāng)實(shí)現(xiàn)了廣播接受器,還要設(shè)置廣播接受器接受廣播信息的類型,這里是信息:

vider.Telephony.SMS_RECEIVED

我們就可以把廣播接受器注冊(cè)到系統(tǒng)里面,可以讓系統(tǒng)懂得我們有個(gè)廣播接受器。這里有

兩種.一種是代碼動(dòng)態(tài)注冊(cè):

〃生成廣播處理

smsBroadCastReceiver=newSmsBroadCastReceiver();

〃實(shí)例化過濾器并設(shè)置要過濾的廣播

IntentFilterintentFilter=newIntentFil(er("vider.Telephony.SMS_RECEIVED");

〃注冊(cè)廣播

BroadCastRcccivcrActivity.this.rcgistcrRcccivcr(smsBroadCastRcccivcr.intentFilter):

一種是在AndroidManifestxml中配置廣播

<?xmlversion="1.0"encoding=*'utf-8"?>

<manifestxmlns:android=""

package="spl.broadCastReceiver"

android:versionCode="1"

android:versionNanie=n1.0">

<applicationandroid:icon="@drawablc/icon"android:labcl="@string/app_namc”>

<activityandroid:namc=",.BroadCastRcccivcrActivity"

android:label="@string/app_narne">

<intenl-fil(er>

<actionandroid:name="ent.action.MAIN"/>

〈categoryandroid:name="enl.calegory.LAUNCHER”/>

</intent-filter>

</activity>

v!-廣播注冊(cè)-〉

<rcccivcrandroid:name=,,.SmsBroadCastRcccivcr">

<intent-filterandroid:priority="20">

<aclionandroid:name="vider.Telephony.SMS_RECEIVED'7>

</intent-filter>

</receiver>

</application>

<uses-sdkandroid:minSdkVersion=,,7"/>

<!-權(quán)限申請(qǐng)->

<uses-pcnnissionandroid:nanic="android.permission.RECEIVE_SMS"x/uses-pcnnission>

</manifesl>

兩種注冊(cè)類型的區(qū)別是:

I)第一種不是常駐型廣播,也就是說廣播跟隨程序的生命周期。

61.2)第二種是常駐型,也就是說當(dāng)

應(yīng)用程序關(guān)閉后,假如有信息廣播來,程

序也會(huì)被系統(tǒng)調(diào)用自動(dòng)運(yùn)行。

62.請(qǐng)解釋下在單線程模型中Message.

Handler、MessageQueue、Looper

之間的關(guān)系。

Handler簡(jiǎn)介:

一種Handler容許你發(fā)送和處理Message和Runable對(duì)象.這些對(duì)象和一種線程的)

MessageQueue有關(guān)聯(lián)。每一種線程實(shí)例和一種單獨(dú)的線程以及該線程的MessageQueue有關(guān)

聯(lián)。當(dāng)你創(chuàng)立一種新的Handler時(shí).它就和創(chuàng)立它的線程綁定在一起了。這里,線程我們也

可以理解為線程的MessageQueue-從沒一點(diǎn)上來看,Handler杷Message和Runable對(duì)象傳

遞給MessageQueue,并且在這些對(duì)象離開MessageQueueB寸.Handler負(fù)責(zé)執(zhí)行他們。

Handler有兩個(gè)重要的用途:(1)確定在未來的某個(gè)時(shí)間點(diǎn)執(zhí)行一種或者某些Message和

Runnable對(duì)象。(2)在其他線程(不是Handler綁定線程)中排入某些要執(zhí)行R勺動(dòng)作。

SchedulingMessage,即(1),可以通過如下措施完畢:

post(Runnablc):Runnable在handler綁定的線程上執(zhí)行,乜就是說不創(chuàng)立新線程。

postAtTime(RunnableJong):

postDclaycd(RunnableJong):

sendEmplyMessage(int):

sendMessage(Message):

sendMessageAtTimc(Message,long):

scndMcssagcDclaycd(Mcssagc,long):

post這個(gè)動(dòng)作讓你把Runnable對(duì)象排入MessageQueue,MessageQueue受到這些消息的]時(shí)候

執(zhí)行他們,當(dāng)然以一定的排序。sendMcssage這個(gè)動(dòng)作容許你把Message對(duì)象排成隊(duì)列,這

些Message對(duì)象包括某些信息,Handler的hanlerMcssage[Mcssage)會(huì)處理這些Message.當(dāng)然

handlerMessagc(Mcssagc)必須由Handler的子類來重寫。這是編程人員需要作B勺事。

當(dāng)posting或者sending到一種Hanier時(shí)你可以有三種行為:當(dāng)MessageQueue準(zhǔn)備好就處

理,定義一種延遲時(shí)間、定義一種精確的時(shí)間去處理。后兩者容許你實(shí)現(xiàn)timeout,tick,和基于

時(shí)間的行為。

當(dāng)你的應(yīng)用創(chuàng)立一種新的進(jìn)程時(shí).主線程(也就是UI線程)自帶一種MessageQueue,這個(gè)

MessageQueue管理頂層的應(yīng)用對(duì)象(像activities,broadcastreceivers等)和主線程創(chuàng)立的窗

體。你可以創(chuàng)立自己的線程,并通過一種Handler和主線程進(jìn)行通信。這和之前同樣.通過

post和sendmessage來完空,差異在于在哪一種線程中執(zhí)行這樣措施。在恰當(dāng)日勺時(shí)候,給定

的)Runnable和Message將在Handler的]MessageQueue中被Scheduled。

Message簡(jiǎn)介:

Message類就是定義了一種信息,這個(gè)信息中包括一種描述符和任意的數(shù)據(jù)對(duì)象,這個(gè)信息

被用來傳遞給Handler.Message對(duì)象提供額外的兩個(gè)int域和一種Object域,這可以讓你在大

多數(shù)狀況下不用作分派的動(dòng)作。

盡管Message的構(gòu)造函數(shù)是public附不過獲取Message實(shí)例的最佳措施是調(diào)用

Message.obtain().或者Handler.obtainMessage。措施,這些措施會(huì)從回收對(duì)象池中獲取一種。

MessageQueue簡(jiǎn)介:

這是一種包括message列表的)底層類。Looper負(fù)責(zé)分發(fā)這些message。Messages并不是直接

加到一種MessageQueue中,而是通過MessageQueue.IdlcHandler關(guān)聯(lián)到Loopcro

你可以通過Looper,myQueue。從目前線程中獲取McssageQueueo

Looper簡(jiǎn)介:

Looper類被用來執(zhí)行一種線程中的message循環(huán)。默認(rèn)狀況.沒有一種消息循環(huán)關(guān)聯(lián)到線程。

在線程中調(diào)用prepare。創(chuàng)立一種Looper,然后用loop。來處理messages,直到循環(huán)終止.

大多數(shù)和messageloop的交互是通過Handler,

下面是一種經(jīng)典附帶有Looper的線程實(shí)現(xiàn)。

classLooperThreadextendsThread{

publicHandlermHandlcr;

publicvoidrun(){

Looper.prepare();

mHandler=newHandler(){

publicvoidhandIeMessage(Messagemsg){

//processincomingmessageshere

)

);

Looper.loop();

I

}

AIDL時(shí)全稱是什么?怎樣工作?能處理哪些類型的數(shù)據(jù)?

A1DL的)英文全稱是AndroidInterfaceDefineLanguage

當(dāng)A進(jìn)程要去調(diào)用B進(jìn)程中的service時(shí),并實(shí)現(xiàn)通信,我們一般都是通過AIDL來操作的

A工程:

首先我們?cè)趎et.blogjava.mobile.aidlservice包中創(chuàng)立一種RemoteService.aidl文獻(xiàn)在里面我

們自定義一種接口.具有措施get。ADT插件會(huì)在gen目錄下自動(dòng)生成一種

RemoteService.java文獻(xiàn),該類中具有一種名為RemoteService.stub的內(nèi)部類,該內(nèi)部類中具

有aidl文獻(xiàn)接口的get措施。

闡明一:aidl文獻(xiàn)的位置不固定.可以任意

然后定義自己的MyScrvice類,在MyScrvice類中自定義一種內(nèi)部類去繼承

RcmotcScrvicc.stub這個(gè)內(nèi)部類,實(shí)現(xiàn)get措施。在onBind措施中返回這個(gè)內(nèi)部類的對(duì)象,系

統(tǒng)會(huì)自動(dòng)將這個(gè)對(duì)象封裝成IBinder對(duì)象.傳遞給他的調(diào)用者.

另一方面需要在AndroidManifcst.xml文獻(xiàn)中配置MyScrvice類,代碼如下:

<!-注冊(cè)服務(wù)

<serviceandroicl:nanie=,,.MyService">

<intent-filter>

<!--指定調(diào)用AIDL服務(wù)的ID

<actionandroid:name="net.blogjava.niobile.aidlservice.RemoteSer\ice"/>

</intent-filter>

</service>

為何要指定調(diào)用AIDL服務(wù)的ID,就是要告訴外界MyService這個(gè)類可以被別的進(jìn)程訪問,只

要?jiǎng)e的進(jìn)程懂得這個(gè)ID,正是有了這個(gè)ID,B工程才能找到A工程實(shí)現(xiàn)通信。

闡明:AIDL并不需要權(quán)限

B工程:

首先我們要將A工程中生成日勺R(shí)emoteService.java文獻(xiàn)拷貝到B工程中.在

bindService措施中綁定aidl服務(wù)

綁定AIDL服務(wù)就是將RenioteSennce的ID作為intent的action參數(shù)。

闡明:假如我們單獨(dú)將ReinoteSenace.aidl文獻(xiàn)放在一種包里.那個(gè)在我們將gen目錄

下的該包拷貝到B工程中。假如我們將RcmotcScrvicc.aidl文獻(xiàn)和我們的其他類寄存在一起,

那么我們?cè)贐工程中就要建立對(duì)應(yīng)的包,以保證RmotcScrvicc.java文獻(xiàn)的報(bào)名對(duì)心我們不

能修改RemoteService.java文獻(xiàn)

bindService(newInten("net.blogjava.mobile.aidlservice.RemoteSenice"),

serviceConnection.Context.BIND_AUTO_CREATE);

ServiceConnectiononServiceConnec(ed(CoinponenlNainename,IBinderservice)措施

中時(shí)service參數(shù)就是A工程中MyService類中繼承了RemoteService.stub類H勺內(nèi)部類的對(duì)象。

63.請(qǐng)解釋下Android程序運(yùn)行時(shí)權(quán)限與

文獻(xiàn)系統(tǒng)權(quán)限的區(qū)別。

運(yùn)行時(shí)權(quán)限D(zhuǎn)alvik(android授權(quán))

文獻(xiàn)系統(tǒng)linux內(nèi)核授權(quán)

系統(tǒng)上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?請(qǐng)闡明原由。

通過直接發(fā)送Uri把參數(shù)帶過去,或者通過manifest里的inlenlfilter里的data屬性

你怎樣評(píng)價(jià)Android系統(tǒng)??jī)?yōu)缺陷。

答:Android平臺(tái)5大優(yōu)勢(shì):

一、開放性

在優(yōu)勢(shì)方面,Android平臺(tái)首先就是其開發(fā)性,開發(fā)的平臺(tái)容許任何移動(dòng)終端廠商加入到

Android聯(lián)盟中來。明顯的開放性可以使其擁有更多的開發(fā)者,伴隨顧客和應(yīng)用的日益豐富,

一種嶄新的平臺(tái)也將很快走向成熟。開放性對(duì)于Android的發(fā)展而言,有助于積累人氣,這

里的人氣包括消費(fèi)者和廠商,而對(duì)于消費(fèi)者來講,隨大的受益正是豐富的軟件資源。開放時(shí)

平臺(tái)也會(huì)帶來更大競(jìng)爭(zhēng),如此一來,消費(fèi)者將可以用更低8勺價(jià)位購(gòu)得心儀時(shí)。

二、掙脫運(yùn)行商的束縛

在過去很長(zhǎng)的一段時(shí)間.尤其是在歐美地區(qū)、應(yīng)用往往受到運(yùn)行商制約、使用什么功能

接入什么網(wǎng)絡(luò)、幾乎都受到運(yùn)行商的控制。從去年iPhone上市,顧客可以愈加以便地連接

網(wǎng)絡(luò),運(yùn)行商的制約減少。伴隨EDGE、HSDPA這些2G至3G移動(dòng)網(wǎng)絡(luò)的逐漸過渡和提高,

隨意接入網(wǎng)絡(luò)已不是運(yùn)行商口中B勺笑談,當(dāng)你可以通過IM軟件以便地進(jìn)行即時(shí)聊天時(shí),

再回憶很快前天價(jià)的彩信和圖鈴下載業(yè)務(wù).是不是像惡夢(mèng)同樣?互聯(lián)網(wǎng)巨頭Google推進(jìn)時(shí)

Android終端天生就有網(wǎng)絡(luò)特色.將讓顧客離互聯(lián)網(wǎng)更近。

三、豐富的硬件選擇

這一點(diǎn)還是與Android平臺(tái)的開放性有關(guān),由于Android的開放性,眾多的廠商會(huì)推出千奇

百怪,功能特色各具的多種產(chǎn)品。功能上的差異和特色,卻不會(huì)影響到數(shù)據(jù)同步、甚至軟件

的兼容,好比你從諾基亞Symbian風(fēng)格一下改用蘋果iPhone,同步還可將Symbian中

優(yōu)秀的軟件帶到iPhone上使用、聯(lián)絡(luò)人等資料更是可以以便地轉(zhuǎn)移,是不是非常以便呢?

四、不受任何限制的開發(fā)商

Android平臺(tái)提供應(yīng)第三方開發(fā)商一種十分寬泛、自由的環(huán)境,不會(huì)受到多種條條框框?yàn)樽?/p>

擾.可想而知.會(huì)有多少新奇別致的軟件會(huì)誕生。但也有其兩面性,血腥、暴力、情色方面

的程序和游戲如可控制正是留給Android難題之一。

五、無結(jié)合的Google應(yīng)用

如今叱詫互聯(lián)網(wǎng)的Google已經(jīng)走過23年度歷史,從搜索巨人到全面的互聯(lián)網(wǎng)滲透.Google

服務(wù)如地圖、郵件、搜索等已經(jīng)成為連接顧客和互聯(lián)網(wǎng)的重要紐帶,而Android平臺(tái)將

無縫結(jié)合這些優(yōu)秀的Google服務(wù)。

再說Android的5大局限性:

一、安全和隱私

由于與互聯(lián)網(wǎng)的緊密聯(lián)絡(luò),個(gè)人隱私很難得到保守。除了上網(wǎng)過程中經(jīng)意或不經(jīng)意留下

的個(gè)人足跡.Google這個(gè)巨人也時(shí)時(shí)站在你的身后,洞穿一切.因此、互聯(lián)網(wǎng)的深入將會(huì)帶

來新一輪日勺隱私危機(jī)。

二、首先開賣Android時(shí)不是最大運(yùn)行商

眾所周知,T-Mobile在23日,于美國(guó)紐約公布了Android首款Glo不過在北美市場(chǎng),最

大的兩家運(yùn)行商乃AT&T和Verizon,而目前所知獲得Android銷售權(quán)時(shí)僅有T-Mob血和

Sprint,其中1-Mobilc的I3G網(wǎng)絡(luò)相對(duì)于其他三家也要遜色不少*因此,顧客可以買賬購(gòu)置

G1,能否體驗(yàn)到最佳的3G網(wǎng)絡(luò)服務(wù)則要另當(dāng)別論了!

三、運(yùn)行商仍然可以影響到Android

在國(guó)內(nèi)市場(chǎng),不少顧客對(duì)購(gòu)得移動(dòng)定制機(jī)不滿,感覺所購(gòu)時(shí)被人涂畫了廣告一般。這樣的

狀況在國(guó)外市場(chǎng)同樣出現(xiàn)。Android的另一發(fā)售運(yùn)行商Sprint就將在其機(jī)型中內(nèi)置其商

店程序。

四、同類機(jī)型顧客減少

在不少論壇都會(huì)有針對(duì)某一型號(hào)的子論壇,對(duì)一款H勺使專心得交流,并分享軟件資

源。而對(duì)于Android平臺(tái),由于廠商豐富,產(chǎn)品類型多樣,這樣使用同一款機(jī)型的做客越

來越少.缺乏統(tǒng)一機(jī)型的程序強(qiáng)化。舉個(gè)稍顯不妥的例子.目前山寨機(jī)泛濫、品種各異,就很

少有專門針對(duì)某個(gè)型號(hào)山寨機(jī)的討論和群組,除了哪些功能異常搶眼、頗受追捧的機(jī)型以

外。

五、過度依賴開發(fā)商缺乏原則配置

在使用PC端的WindowsXp系統(tǒng)的時(shí)候,都會(huì)內(nèi)置微軟WindowsMediaPlayer這樣一種瀏

覽器程序,顧客可以選擇更多樣的播放器.如Realplay或暴風(fēng)影音等。但入手開始使用默認(rèn)

的程序同樣可以應(yīng)付多樣的需要。在Android平臺(tái)中.由于其開放性,軟件更多依賴第三方

廠商.例如Android系統(tǒng)的SDK中就沒有內(nèi)置音樂播放器,所有依賴第三方開發(fā).缺乏了

產(chǎn)品的統(tǒng)一性。

64.什么是ANR怎樣防止它?

答:ANR:ApplicationNotResponding,五秒

在Android中,活動(dòng)管理器和窗口管理器這兩個(gè)系統(tǒng)服務(wù)負(fù)責(zé)監(jiān)視應(yīng)用程序的)響應(yīng)。當(dāng)出現(xiàn)

下列狀況時(shí),Android就會(huì)顯示ANR對(duì)話框了:

對(duì)輸入事件(如按鍵、觸摸屏事件)的響應(yīng)超過5秒

意向接受器(intentReceiver)超過10秒鐘仍未執(zhí)行完畢

Android應(yīng)用程序完全運(yùn)行在一種獨(dú)立的線程中(例如main).這就意味著,任何在主線

程中運(yùn)行的,需要消耗大量時(shí)間的操作都會(huì)引起ANR。由于此時(shí),你的應(yīng)用程序已經(jīng)沒有機(jī)

會(huì)去響應(yīng)輸入事件和意向廣播(Intentbroadcast)。

因此,任何運(yùn)行在主線程中的措施,者陵盡量的只做少許的工作。尤其是活動(dòng)生命周期

中的)重要措施如onCreate。和onResume。等更應(yīng)如此。潛在的)比較耗時(shí)的操作,如訪問網(wǎng)

絡(luò)和數(shù)據(jù)庫;或者是開銷很大的計(jì)算,例如變化位圖的大小,需要在一種單獨(dú)的子線程中完

畢(或者是使用異步祈求,如數(shù)據(jù)庫操作)。但這并不意味著你的主線程需要進(jìn)入阻塞狀態(tài)已

等待子線程結(jié)束一也不需要調(diào)用Therad.wait。或者Thread.sleep。措施。取而代之的是,

主線程為子線程提供一種句柄(Handler),讓子線程在即將結(jié)束的時(shí)候調(diào)用它(xing:可以參

看Snake的例子,這種措施與此前我們所接觸的有所不一樣)。使用這種措施波及你的應(yīng)用

程序,可以保證你曰勺程序?qū)斎氡3至己萌丈醉憫?yīng),從而防止由于輸入事件超過5秒鐘不被處

理而產(chǎn)生的ANR。這種實(shí)踐需要應(yīng)用到所有顯示顧客界面的線程,由于他們都面臨著同樣的

超時(shí)問題。

65.什么狀況會(huì)導(dǎo)致ForceClose?怎樣防

止?能否捕捉導(dǎo)致其的異常?

答:一般像空指針啊,可以看起logcat,然后對(duì)應(yīng)到程序中來處理錯(cuò)誤

Android自身的api并未申明會(huì)拋出異常,則其在運(yùn)行時(shí)有無也許拋出runtime異常,你碰到

過嗎?諾有的話會(huì)導(dǎo)致什么問題?怎樣處理

66.簡(jiǎn)要解釋一下activity、intent、

intentfilter,service.Broadcase.

BroadcaseReceiver

答:一種activity展現(xiàn)了一種顧客可以操作的可視化顧客界面

一種service不包括可見的顧客界面,而是在后臺(tái)無限地運(yùn)行

可以連接到一種正在運(yùn)行的服務(wù)中,連接后,可以通過服務(wù)中暴露出來的借口與其進(jìn)

行通信

一種broadcastreceMer是一種接受廣播消息并作出回應(yīng)的Icomponent,broadcast

receiver沒有界面

intent:contentprovider在接受到ContentResolver的祈求時(shí)被激活。

activity,service和broadcastreceiver是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論