android-教程精華-摘要-開發(fā)-面試-免費new

android-教程精華-摘要-開發(fā)-面試-免費new

ID:12712799

大?。?19.00 KB

頁數(shù):16頁

時間:2018-07-18

android-教程精華-摘要-開發(fā)-面試-免費new_第1頁
android-教程精華-摘要-開發(fā)-面試-免費new_第2頁
android-教程精華-摘要-開發(fā)-面試-免費new_第3頁
android-教程精華-摘要-開發(fā)-面試-免費new_第4頁
android-教程精華-摘要-開發(fā)-面試-免費new_第5頁
資源描述:

《android-教程精華-摘要-開發(fā)-面試-免費new》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、ANDROID復習摘要1、什么是ANR如何避免它?ANR定義在Android上,如果你的應用程序有一段時間響應不夠靈敏,系統(tǒng)會向用戶顯示一個對話框,這個對話框稱作應用程序無響應(ANR:ApplicationNotResponding)對話框。用戶可以選擇讓程序繼續(xù)運行,但是,他們在使用你的應用程序時,并不希望每次都要處理這個對話框。因此,在程序里對響應性能的設(shè)計很重要,這樣,系統(tǒng)不會顯示ANR給用戶。如何避免:考慮上面的ANR定義,讓我們來研究一下為什么它會在Android應用程序里發(fā)生和如何最佳構(gòu)建應用程序來避免ANR。Android應用程序通常是運行在一個單獨的線程(

2、例如,main)里。這意味著你的應用程序所做的事情如果在主線程里占用了太長的時間的話,就會引發(fā)ANR對話框,因為你的應用程序并沒有給自己機會來處理輸入事件或者Intent廣播。因此,運行在主線程里的任何方法都盡可能少做事情。特別是,Activity應該在它的關(guān)鍵生命周期方法(如onCreate()和onResume())里盡可能少的去做創(chuàng)建操作。潛在的耗時操作,例如網(wǎng)絡或數(shù)據(jù)庫操作,或者高耗時的計算如改變位圖尺寸,應該在子線程里(或者以數(shù)據(jù)庫操作為例,通過異步請求的方式)來完成。然而,不是說你的主線程阻塞在那里等待子線程的完成——也不是調(diào)用Thread.wait()或是Th

3、read.sleep()。替代的方法是,主線程應該為子線程提供一個Handler,以便完成時能夠提交給主線程。以這種方式設(shè)計你的應用程序,將能保證你的主線程保持對輸入的響應性并能避免由于5秒輸入事件的超時引發(fā)的ANR對話框。這種做法應該在其它顯示UI的線程里效仿,因為它們都受相同的超時影響。IntentReceiver執(zhí)行時間的特殊限制意味著它應該做:在后臺里做小的、瑣碎的工作如保存設(shè)定或者注冊一個Notification。和在主線程里調(diào)用的其它方法一樣,應用程序應該避免在BroadcastReceiver里做耗時的操作或計算。但不再是在子線程里做這些任務(因為Broadc

4、astReceiver的生命周期短),替代的是,如果響應Intent廣播需要執(zhí)行一個耗時的動作的話,應用程序應該啟動一個Service。順便提及一句,你也應該避免在IntentReceiver里啟動一個Activity,因為它會創(chuàng)建一個新的畫面,并從當前用戶正在運行的程序上搶奪焦點。如果你的應用程序在響應Intent廣播時需要向用戶展示什么,你應該使用NotificationManager來實現(xiàn)。一般來說,在應用程序里,100到200ms是用戶能感知阻滯的時間閾值。因此,這里有一些額外的技巧來避免ANR,并有助于讓你的應用程序看起來有響應性。如果你的應用程序為響應用戶輸入正

5、在后臺工作的話,可以顯示工作的進度(ProgressBar和ProgressDialog對這種情況來說很有用)。特別是游戲,在子線程里做移動的計算。若你的應用程序有一個耗時的初始化過程的話,考慮可以顯示一個SplashScreen或者快速顯示主畫面并異步來填充這些信息。在這兩種情況下,你都應該顯示正在進行的進度,以免用戶認為應用程序被凍結(jié)了。本文來自CSDN博客,轉(zhuǎn)載請標明出處:http://blog.csdn.net/Zengyangtech/archive/2010/11/21/6025671.aspx2、什么情況會導致ForceClose?如何避免?能否捕獲導致其的異

6、常?3、Android本身的api并未聲明會拋出異常,則其在運行時有無可能拋出runtime異常,你遇到過嗎?諾有的話會導致什么問題?如何解決?4、簡要解釋一下activity、intent、intentfilter、service、Broadcast、BroadcaseReceiverActivityAndroid中,Activity是所有程序的根本,所有程序的流程都運行在Activity之中,Activity具有自己的生命周期(由系統(tǒng)控制生命周期,程序無法改變,但可以用onSaveInstanceState保存其狀態(tài))。對于Activity,關(guān)鍵是其生命周期的把握(如那

7、張經(jīng)典的生命周期圖=.=),其次就是狀態(tài)的保存和恢復(onSaveInstanceStateonRestoreInstanceState),以及Activity之間的跳轉(zhuǎn)和數(shù)據(jù)傳輸(intent)。Activity中常用的函數(shù)有SetContentView()findViewById()finish()startActivity(),其生命周期涉及的函數(shù)有:voidonCreate(BundlesavedInstanceState)voidonStart()voidonRestart()voidonResume()

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。