Android兩種常見錯誤(ANR和FC)解決辦法

2021-07-03 09:45:56 字數 983 閱讀 6733

anr(activity not respone)(無響應)

先介紹下main執行緒(也稱為ui執行緒、主線程)

功能: 1.建立ui控制項

2.更新ui控制項狀態

3.事件處理

限制:main執行緒不建議有超過5秒的事件

出現條件:

當使用者輸入事件5s內沒有得到響應,將彈出anr對話方塊

廣播接收者的onreceive()執行時間超過10s

解決方案(原則):

所有可能的耗時操作都要在子執行緒()中執行

常見耗時操作:

i/o:網路操作

sdcard 

資料運算

fc(force close)

原因:1.error

oom(out of memory error)

stackoverflowerror

2.runtimeexception

解決辦法:

看日誌子執行緒不能更新ui的解決思路:

1、 將子執行緒執行結果傳送到main執行緒:handler+massage執行緒間通訊

傳送訊息:

message 

msg= 

mhandler

.obtainmessage(

upload

, json);

mhandler

.sendmessage(msg);

接收訊息:

publicvoidhandlemessage(message msg)  }

2、 使更新ui**段在main執行緒執行: 1.

runonuithread

2.view.post view.postdelay()

3.handler.post handler.

postdelay()

android 兩種非同步方式

使用asynctask 開啟子執行緒獲取伺服器資料,更新介面ui 非同步任務 後台執行,耗時的操作都放在這裡,相當於thread的run方法 override protected string doinbackground string.params 在執行後台任務之後,可以在這更改ui介面,相當於...

XML的兩種常見格式

寫了好長時間感覺sax解析也不難理解,主要是xml文件的格式我們不熟悉,熟悉了xml文件的格式,再來看sax解析就好多了 所以寫了這篇關於xml文件常見的兩種格式的詳細解讀 先來模擬一下兩種格式 xml第一種形式 此時我們需要解析的是元素 元素屬性 下面是nsparser的幾個 方法,給出列印結果,...

Android 生成keystore,兩種方式

一 eclipse 中生成android keystore 建立任意乙個android專案 例如 antforandroid 選擇 create new keystore 並且儲存在乙個目錄下面 本例子儲存在專案跟目錄下 輸入密碼,然後next 填寫一些資訊,填寫的alias 和 密碼不要忘記了 這...