場景:
在程式中如果需要在後台長時間做一件事情,比如聯網獲取資料等操作,就要用到執行緒。
但為了提高使用者體驗,有以下幾點需要注意:
1、程式可見時執行緒開始執行;
2、程式不可見時執行緒暫停;
3、程式退出時停止執行緒;
public class netutil2 extends thread
private static netutil2 single = null;
public synchronized static netutil2 getinstance()
return single;
}public synchronized void addnewsbrief(newsbrief newsbrief)
public void setobtaindatalistener(int channelid, iobtaindata iod)
}public void setcurrentpage(int page)
/*** 暫停執行緒
*/public synchronized void onthreadpause()
/*** 執行緒等待,不提供給外部呼叫
*/private void onthreadwait()
} catch (exception e)
}/**
* 執行緒繼續執行
*/public synchronized void onthreadresume()
/*** 關閉執行緒
*/public synchronized void closethread() catch (exception e)
}public boolean isclose()
public void setclose(boolean isclose)
@override
public void run()
}if (null == newsbrief)
string reslut = getnewscontent(newsbrief);
if (!"-1".equals(reslut))
synchronized (looplist)
} else
}try catch (interruptedexception e)
} else }}
}
注意:執行緒的暫停用ispause控制,說白了其實就是不讓執行緒進入wait狀態;
android執行緒及非同步操作
現在完成乙個計數任務,從1計到100,在textview中顯示進度。如果把這些迴圈加的操作放在oncreat 方法中,肯定會出現阻塞。利用asynctask類在後台進行操作,可以使主ui執行緒順暢進行下去。這個類裡主要涉及到3個方法,doinbackground onprogressupdate o...
android關於多執行緒操作sqlite知識點
1.關於getwriteabledatabase 和getreadabledatabase 的真正作用 getwriteabledatabase 其實是相當於getreadabledatabase 的乙個子方法,getwriteabledatabase 是只能返回乙個以讀寫方式開啟的sqliteda...
Thread類執行緒常用操作
執行緒是通過擴充套件 thread 類建立的。擴充套件的 thread 類呼叫 start 方法來開始子執行緒的執行。下面的程式演示了這個概念 class threadcreationprogram static void main string args 當上面的 被編譯和執行時,它會產生下列結果...