(1)standard 默認模式:每次激活Activity時都會創(chuàng)建Activity實例,并放入回退棧中。
(2)singleTop 如果在回退棧的棧頂正好存在該Activity的實例,就重用該實例,只要不在棧頂,都會創(chuàng)建實例。
(3)singleTask 如果在棧中已經(jīng)有該Activity 的實例,就重用該實例。重用時,會讓該實例回到棧頂,因此在
它上面的實例將會被移除棧。
(4)singleInstance 在一個新棧中創(chuàng)建該Activity 實例,并讓多個應用共享該Activity 實例。
2、Android中常用的布局有哪些?
(1)LinearLayout 線性布局
(2)RelativeLayout 相對布局
(3)FrameLayout 幀布局(框架布局)
(4)GridLayout 網(wǎng)格布局
(5)TableLayout 表格布局
(6)AbsoluteLayout 絕對布局
3、ListView優(yōu)化方案有哪些?數(shù)據(jù)集合更新后如何更新ListView顯示?
(1)重寫getView方法,對view對象的復用做的優(yōu)化。
(2)viewHolder類,調(diào)用setTag和getTag方法,將view與holder對象進行綁定。
(3)分頁加載
4、Intent都可以傳遞哪些數(shù)據(jù)類型?
(1)第一類:簡單或基本數(shù)據(jù)類型 如:putExtra(String name, int[] value)
(2)第二類:傳遞一個Bundle
(3)第三類:傳遞Serializable對象
(4)第四類:Parcelable對象
(5)第五類:Intent
5、Fragment和Activity之間是如何傳值的?
(1)方式一:拿到對方的對象。如Activity拿到Fragment的對象
(2)方式二:Actviity傳遞給Fragment,可以通過fragment的setArguments(bundle);getArguments()
(3)方式三:Fragment傳遞給Activity??梢栽贔ragment中定義一個內(nèi)部接口回調(diào),讓Activity去實現(xiàn)。
6、介紹下Android都有哪些數(shù)據(jù)存儲方式?
(1) 通過SharedPreferences方式存儲,這類存儲主要適用于存儲信息量小的操作。具有操作和存儲簡便,
代碼簡單的特點
(2) 通過SD卡等磁盤介質(zhì)存儲,這類一般都是存成文件的形式。適用于存儲信息量大,操作相對復雜些。
(3) 通過數(shù)據(jù)庫,一般都是sqlite的方式進行存儲,適用于存儲信息量適中,這類存儲在查詢的時候比較
方便。而且能很好的支持SQL語句。
(4) 通過網(wǎng)絡方式存儲到其他服務器,這類一般適用于CS方式,且存儲數(shù)據(jù)需要集中存儲,具有聯(lián)網(wǎng)的性
質(zhì)。比如網(wǎng)游或者復雜應用。
7、解釋Message、Handler、MessageQueue、Looper之間的關(guān)系,以及如何工作的?
Handler獲取當前線程中的looper對象,looper用來從存放Message的MessageQueue中取出Message,
再有Handler進行Message的分發(fā)和處理.
(1)Message Queue(消息隊列):用來存放通過Handler發(fā)布的消息,通常附屬于某一個創(chuàng)建它的線程,
可以通過Looper.myQueue()得到當前線程的消息隊列
(2)Handler:可以發(fā)布或者處理一個消息或者操作一個Runnable,通過Handler發(fā)布消息,消息將只
會發(fā)送到與它關(guān)聯(lián)的消息隊列,然也只能處理該消息隊列中的消息
(3)Looper:是Handler和消息隊列之間通訊橋梁,程序組件首先通過Handler把消息傳遞給Looper,
Looper把消息放入隊列。Looper也把消息隊列里的消息廣播給所有的
(4)Handler:Handler接受到消息后調(diào)用handleMessage進行處理
(5)Message:消息的類型,在Handler類中的handleMessage方法中得到單個的消息進行處理
8、頁面上有ProgressBar控件,請寫一個線程用十秒的時間來完成其從0-100的顯示。