Can't create handler inside thread that has not called Looper.prepare()解決辦法
阿新 • • 發佈:2019-01-01
像提示說的,新增 Looper.prepare();
Thread action=newThread() {
publicvoidrun() {
Looper.prepare();
todo();
Looper.loop(); } }; action.start()
解決辦法二:使用handler
在主activity中定一個Handler的成員,然後實現handlemassage函式,建立執行緒後在runable的run函式裡new一個message,然後指定message物件的what成員,這個是指定message的一個id,然後在run中呼叫Handler的成員,使用其成員方法中的sendmessage(好像是叫這個),handlemassage函式中引數有個massage,根據該message引數中的what來對你傳送message時指定的what來處理UI的功能
privateHandler mHandler=newHandler(){
publicvoidhandleMessage(Message msg) {
switch(msg.what)
{
caseID_USER:
//獲取傳遞的資料//Bundle
data = msg.getData();
//int count = data.getInt("COUNT");
//處理UI更新等操作
} };
};
主activity中建立執行緒 Java code <!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> MyThread thread=newMyThread(); mThread=newThread(thread); mThread.start(); MyThread Java code <!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> |