這不是關於能夠在主/ UI線程中調用方法但能夠立即執行的問題。是否有一種方法幾乎可以即時從後臺線程調用UI線程中的方法?
據我所知,由於UI響應需求,您通常不被允許直接與UI線程交互。這將是有道理的,然後有一個系統到位排隊主線程的請求,我們確實有系統與活套,處理程序等。
這是我做的: 我做了一些任務在後臺線程,我想盡快函告主線程的條件得到滿足(我創建了它監聽)我用的是響應處理後it..something這樣的:
if(mNoOfPendingRequests >= mNoOfRequestsConsideredEnough){
mShouldFlagEnoughRequestsAtATime = true;
Log.i("ThumbnailDownloader: ","Enough Requests Queued");
//Now inform about this to PhotoGallery right now
mResponseHandler.postAtFrontOfQueue(new Runnable() {
public void run() {
mEnoughRequestsListener.onEnoughRequestsQueued(mShouldFlagEnoughRequestsAtATime);
}
});
}
else{
mShouldFlagEnoughRequestsAtATime = false;
mEnoughRequestsListener.onEnoughRequestsQueued(mShouldFlagEnoughRequestsAtATime);
}
如果我不通知PhotoGallery有關已發送足夠多的請求,它會繼續發送越來越多的請求,並且應用程序變得無法響應。
此外,請求排隊並稍後執行,導致請求過多。因此
我的問題是:
有沒有辦法來調用一個方法/從後臺線程在UI線程通知幾乎是瞬間?
ummmm ...創建兩個新對象,只是要在UI線程上發佈一些東西? –