无码人妻一区二区三区免费不卡_日韩AV无码综合久久五月_国产成人aⅴ片在线观看_欧美成人片高清在线观看

蜜蜂職場(chǎng)文庫(kù) > 面試技巧 >

android面試題目及其答案

時(shí)間: 小龍 面試技巧

  android面試中,面試者想要有好的表現(xiàn),那么面試前的準(zhǔn)備很重要,你了解安卓面試題目嗎?你會(huì)作答了嗎?以下是小編幫你們整理的android面試題目及其答案,一起來學(xué)習(xí)啦。

  android面試題目及其答案篇一

  1、顯式intent和隱式intent的區(qū)別是什么(Android)

  Intent定義:Intent是一種在不同組件之間傳遞的請(qǐng)求消息,是應(yīng)用程序發(fā)出的請(qǐng)求和意圖。作為一個(gè)完整的消息傳遞機(jī)制,Intent不僅需要發(fā)送端,還需要接收端。

  顯式Intent定義:對(duì)于明確指出了目標(biāo)組件名稱的Intent,我們稱之為顯式Intent; 隱式Intent定義:對(duì)于沒有明確指出目標(biāo)組件名稱的Intent,則稱之為隱式Intent。 說明:Android系統(tǒng)使用IntentFilter 來尋找與隱式Intent相關(guān)的對(duì)象。

  2、如何優(yōu)化ListView

  1)如果自定義適配器,那么在getView方法中要考慮方法傳進(jìn)來的參數(shù)contentView是否為null,如果為null就創(chuàng)建contentView并返回,如果不為null則直接使用。在這個(gè)方法中盡可能少創(chuàng)建view;

  2)給contentView設(shè)置tag(setTag()),傳入一個(gè)viewHolder對(duì)象,用于緩存要顯示的數(shù)據(jù),可以達(dá)到圖像數(shù)據(jù)異步加載的效果;

  3)如果listview需要顯示的item很多,就要考慮分頁加載。比如一共要顯示100條或者更多的時(shí)候,我們可以考慮先加載20條,等用戶拉到列表底部的時(shí)候再去加載接下來的20條。

  3、簡(jiǎn)述通過contentResolver獲取ContentProvider內(nèi)容的基本步驟

  1)得到ContentResolver類對(duì)象:ContentResolver cr = getContentResolver();

  2)定義要查詢的字段String數(shù)組;

  3)使用cr.query();返回一個(gè)Cursor對(duì)象;

  4)使用while循環(huán)得到Cursor里面的內(nèi)容。

  4、描述4 種 activity 的啟動(dòng)模式

  1)standard :系統(tǒng)的默認(rèn)模式,一次跳轉(zhuǎn)即會(huì)生成一個(gè)新的實(shí)例。假設(shè)有一個(gè)activity命名為MainActivity,執(zhí)行語句:

  startActivity(new Intent(MainActivity.this, MainActivity.class))后,MainActivity將跳轉(zhuǎn)到另外一個(gè)MainActivity,也就是現(xiàn)在的Task棧里面有MainActivity的兩個(gè)實(shí)例。按返回鍵后你會(huì)發(fā)現(xiàn)仍然是在MainActivity(第一個(gè))里面。

  2)singleTop:singleTop 跟standard 模式比較類似。如果已經(jīng)有一個(gè)實(shí)例位于Activity棧的頂部時(shí),就不產(chǎn)生新的實(shí)例,而只是調(diào)用Activity中的newInstance()方法。如果不位于棧頂,會(huì)產(chǎn)生一個(gè)新的實(shí)例。例:當(dāng)MainActivity為 singleTop 模式時(shí),執(zhí)行跳轉(zhuǎn)后棧里面依舊只有一個(gè)實(shí)例,如果現(xiàn)在按返回鍵程序?qū)⒅苯油顺觥?/p>

  3)singleTask: singleTask模式和后面的singleInstance模式都是只創(chuàng)建一個(gè)實(shí)例的。在這種模式下,無論跳轉(zhuǎn)的對(duì)象是不是位于棧頂?shù)腶ctivity,程序都不會(huì)生成一個(gè)新的實(shí)例(當(dāng)然前提是棧里面已經(jīng)有這個(gè)實(shí)例)。這種模式相當(dāng)有用,在以后的多activity開發(fā)中,經(jīng)常會(huì)因?yàn)樘D(zhuǎn)的關(guān)系導(dǎo)致同個(gè)頁面生成多個(gè)實(shí)例,這個(gè)在用戶體驗(yàn)上始終有點(diǎn)不好,而如果你將對(duì)應(yīng)的activity聲明為 singleTask 模式,這種問題將不復(fù)存在。

  4)singleInstance: 設(shè)置為 singleInstance 模式的 activity 將獨(dú)占一個(gè)task(感覺task可以理解為進(jìn)程),獨(dú)占一個(gè)task的activity與其說是activity,倒不如說是一個(gè)應(yīng)用,這個(gè)應(yīng)用與其他activity是獨(dú)立的,它有自己的上下文activity。

  5、Android中如何訪問自定義ContentProvider?

  通過ContentProvider的Uri訪問開放的數(shù)據(jù)。

  1)ContenResolver對(duì)象通過Context提供的方法getContenResolver()來獲得。

  2)ContenResolver提供了以下方法來操作:insert delete update query這些方法分別會(huì)調(diào)用ContenProvider中與之對(duì)應(yīng)的方法并得到返回的結(jié)果。

  6、Android中的動(dòng)畫有哪幾類,它們的特點(diǎn)和區(qū)別是什么?

  Android中動(dòng)畫可以分為兩大類:幀動(dòng)畫、補(bǔ)間動(dòng)畫

  1)補(bǔ)間動(dòng)畫:你定義一個(gè)開始和結(jié)束,中間的部分由程序運(yùn)算得到。主要有:旋轉(zhuǎn)、平移、放縮和漸變;Alphaanimation(漸變型動(dòng)畫)、scaleAnimation(縮放型動(dòng)畫)、 TranslateAnimation(平移型動(dòng)畫)、 RotateAnimation(旋轉(zhuǎn)型動(dòng)畫)、

  2)逐幀動(dòng)畫:Frame(把一連串的圖片進(jìn)行系列化連續(xù)播放,如同放電影的效果),它是通過播放一張一張圖片來達(dá)到動(dòng)畫的效果。

  android面試題目及其答案篇二

  1. 什么是Activity?

  四大組件之一,一般一個(gè)用戶交互界面對(duì)應(yīng)一個(gè)activity

  setContentView() ,// 要顯示的布局, activity 是Context的子類,同時(shí)實(shí)現(xiàn)了window.callback和keyevent.callback, 可以處理與窗體用戶交互的事件.

  開發(fā)常用的的有FragmentActivitiy,ListActivity , PreferenceActivity ,TabAcitivty等„

  如果界面有共同的特點(diǎn)或者功能的時(shí)候,還會(huì)自己定義一個(gè)BaseActivity.進(jìn)度對(duì)話框的顯示與銷毀

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

  生命周期描述的是一個(gè)類 從創(chuàng)建(new出來)到死亡(垃圾回收)的過程中會(huì)執(zhí)行的方法.. 在這個(gè)過程中 會(huì)針對(duì)不同的生命階段會(huì)調(diào)用不同的方法

  Activity從創(chuàng)建到銷毀有多種狀態(tài),從一種狀態(tài)到另一種狀態(tài)時(shí)會(huì)激發(fā)相應(yīng)的回調(diào)方法,這些回調(diào)方法包括:oncreate ondestroy onstop onstart onresume onpause

  其實(shí)這些方法都是兩兩對(duì)應(yīng)的,onCreate創(chuàng)建與onDestroy銷毀;

  onStart可見與onStop不可見;onResume可編輯(即焦點(diǎn))與onPause;

  這6個(gè)方法是相對(duì)應(yīng)的,那么就只剩下一個(gè)onRestart方法了,這個(gè)方法在什么時(shí)候調(diào)用呢? 答案就是:在Activity被onStop后,但是沒有被onDestroy,在再次啟動(dòng)此Activity時(shí)就調(diào)用onRestart(而不再調(diào)用onCreate)方法;

  如果被onDestroy了,則是調(diào)用onCreate方法。

  最后講自己項(xiàng)目中的經(jīng)驗(yàn),比如說樂玩每次進(jìn)入某個(gè)界面的時(shí)候都要看到最新的數(shù)據(jù),這個(gè)刷新列表的操作 就放在onStart()的方法里面.這樣保證每次用戶看到的數(shù)據(jù)都是最新的.

  比如:多媒體播放, 播放來電話. onStop() 視頻, 視頻聲音設(shè)置為0 , 記錄視頻播放的位置 mediaplayer.pause();

  onStart() 根據(jù)保存的狀態(tài)恢復(fù)現(xiàn)場(chǎng). mediaplayer.start();

  在讀文檔的時(shí)候 還發(fā)現(xiàn) activity還有兩個(gè)方法 onPostResume() 和 OnPostCreate()這兩個(gè)生命周期的方法,不過開發(fā)的時(shí)候沒有用到過.

  3. 兩個(gè)Activity之間跳轉(zhuǎn)時(shí)必然會(huì)執(zhí)行的是哪幾個(gè)方法。

  一般情況比如說有兩個(gè)activity,分別叫A,B ,當(dāng)在A里面激活B組件的時(shí)候, A 會(huì)調(diào)用 onPause()方法,然后B 調(diào)用onCreate() ,onStart(), OnResume() ,這個(gè)時(shí)候B覆蓋了窗體, A會(huì)調(diào)用onStop()方法. 如果B呢 是個(gè)透明的,或者是對(duì)話框的樣式, 就不會(huì)調(diào)用onStop()方法

  4. 橫豎屏切換時(shí)候Activity的生命周期。

  這個(gè)生命周期跟清單文件里的配置有關(guān)系

  1、不設(shè)置Activity的android:configChanges時(shí),切屏?xí)匦抡{(diào)用各個(gè)生命周期 默認(rèn)首先銷毀當(dāng)前activity,然后重新加載

  2、設(shè)置Activity的android:configChanges="orientation|keyboardHidden|screenSize"時(shí),切屏不會(huì)重新調(diào)用各個(gè)生命周期,只會(huì)執(zhí)行onConfigurationChanged方法。游戲開發(fā)中, 屏幕的朝向都是寫死的.

  android面試題目及其答案篇三

  1. 如何將一個(gè)Activity設(shè)置成窗口的樣式。

  可以自定義一個(gè)activity的樣式

  android:theme="@android:style/Theme.Dialog"

  2. 你后臺(tái)的Activity被系統(tǒng) 回收怎么辦?如果后臺(tái)的Activity由于某原因被系統(tǒng)回收了,如何在被系統(tǒng)回收之前保存當(dāng)前狀態(tài)?

  除了在棧頂?shù)腶ctivity,其他的activity都有可能在內(nèi)存不足的時(shí)候被系統(tǒng)回收,一個(gè)activity越處于棧底,被回收的可能性越大.

  protected void onSaveInstanceState(Bundle outState) {

  super.onSaveInstanceState(outState);

  outState.putLong("id", 1234567890);

  }

  public void onCreate(Bundle savedInstanceState) {

  //判斷 savedInstanceState是不是空.

  //如果不為空就取出來

  super.onCreate(savedInstanceState);

  }

  3. service是否在main thread中執(zhí)行, service里面是否能執(zhí)行耗時(shí)的操作?

  默認(rèn)情況,如果沒有顯示的指定service所運(yùn)行的進(jìn)程, Service和activity是運(yùn)行在當(dāng)前app所在進(jìn)程的main thread(UI主線程)里面

  service里面不能執(zhí)行耗時(shí)的操作(網(wǎng)絡(luò)請(qǐng)求,拷貝數(shù)據(jù)庫(kù),大文件 )

  在子線程中執(zhí)行 new Thread(){}.start();

  Thread.currentThread().getName();

  特殊情況 ,可以在清單文件配置 service 執(zhí)行所在的進(jìn)程 ,讓service在另外的進(jìn)程中執(zhí)行

  
看了“android面試題目及其答案”的人還看過:

1.

2.

3.

4.

5.

50347