編輯:關於Android編程
今天在開發的過程中需要給之前的程序加上多線程操作,避免networrk on mainthread。
由於代碼很多,變量之間錯綜復雜,後面的變量需要在前面代碼的線程中獲取,線程的同步就非常關鍵
我知道的線程同步的方法主要是thread.join(),等待另一個線程的完成再繼續進行本線程的工作。
不過在android中,mainThread控制著屏幕的刷新,如果調用在main thread中調用join將會導致屏幕無法刷新。
所以,我們可以通過專門新建一個線程,用這個線程來等待已有線程的結束,在已有線程結束後,在通過runOnUIThread方法通知屏幕刷新。
這是我們的耗時線程(模擬運行3秒):
thread1=new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
thread1.start();
這是通知線程:
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
thread1.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}runOnUiThread(new Runnable() {
public void run() {
tv2.setText(Tread complete!);
}
});
}
}).start();
Android圓形旋轉菜單
【點擊下載】
Android仿微信朋友圈全文收起功能示例(附源碼)
在眾多的社交類軟件中,朋友圈是必不可少的,可以與好友、同學等分享自己的日常和有意思的事情,在開發社交類App時,朋友圈發表的內容你不可能讓他全部顯示,全部顯示的話用戶體驗
Android後台保活實踐總結:即時通訊應用無法根治的“頑疾”
前言Android進程和Service的保活,是困擾Android開發人員的一大頑疾。因涉及到省電和內存管理策略,各廠商基於自家的理解,在自已ROOM發布於都對標准And
RecyclerView.ItemAnimator終極解讀(三)--繼承DefaultItemAnimator實現自定義動畫
DefaultItemAnimator是Android OS中一個默認的RecyclerView動畫實現類,如果產品需求沒有特別復雜的動畫要求,可以使用DefaultIt