1. 程式人生 > >轉載別人整理的面試題,留著自己學習

轉載別人整理的面試題,留著自己學習

什麼是ANR 如何避免它?答:在Android 上,如果你的應用程式有一段時間響應不夠靈敏,系統會向用戶顯示一個對話方塊,這個對話方塊稱作應
用程式無響應(ANR:Application Not Responding)對話方塊。使用者可以選擇讓程式繼續執行,但是,他們在使用你的應用程式時,並不希望每次都要處理這個對話方塊。因此,在程式裡對響應效能的設計很重要,這樣,系統不會顯示ANR 給使用者。
不同的元件發生ANR 的時間不一樣,主執行緒(Activity、Service)是5 秒,BroadCastReceiver 是10 秒。
解決方案:
將所有耗時操作,比如訪問網路,Socket 通訊,查詢大量SQL 語句,複雜邏輯計算等都放在子執行緒中去,然後
通過handler.sendMessage、runonUITread、AsyncTask 等方式更新UI。無論如何都要確保使用者介面操作的流暢度。
如果耗時操作需要讓使用者等待,那麼可以在介面上顯示進度條。