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 和 密碼不要忘記了 這...