这不是关于能够在主/ 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线程上发布一些东西? –