使用2个嵌套异步线程-Android Java AutoCompleteTextView
我一直在创建一个动态的使用2个嵌套异步线程-Android Java AutoCompleteTextView,java,android,asynchronous,nested,Java,Android,Asynchronous,Nested,我一直在创建一个动态的AutoCompleteTextView,在使用两个嵌套的异步线程时遇到了一个问题 第一个异步线程是一个过滤器,在这个线程中,我异步地进行HTTP调用。这会导致筛选器返回空的FilterResults,因为筛选器不等待异步HTtP调用 为了克服这种情况,我使用了一个标志,并在return行等待异步HTTP调用完成并设置标志之前,在过滤器内部使用了一个while循环 这很好,但有更好的解决方案吗 这种方法会导致另一个我看不到的问题吗 我在异步使用JSON请求,所以我通过使用
AutoCompleteTextView
,在使用两个嵌套的异步线程时遇到了一个问题
第一个异步线程是一个过滤器
,在这个线程中,我异步地进行HTTP调用。这会导致筛选器返回空的FilterResults
,因为筛选器不等待异步HTtP调用
为了克服这种情况,我使用了一个标志,并在return
行等待异步HTTP调用完成并设置标志之前,在过滤器内部使用了一个while循环
- 这很好,但有更好的解决方案吗
- 这种方法会导致另一个我看不到的问题吗
RequestFuture<JSONObject> future = RequestFuture.newFuture();
itemReq = new JsonObjectRequest(url + city, new JSONObject(), future, future);
AppController.getInstance().addToRequestQueue(itemReq);
RequestFuture=RequestFuture.newFuture();
itemReq=新JSONObject请求(url+城市,新JSONObject(),未来,未来);
AppController.getInstance().addToRequestQueue(itemReq);
如果筛选器在主线程上工作,则让它等待后台线程完成是一个糟糕的想法、糟糕的做法等,最终可能会导致错误。PerformFilter在后台线程中调用,因此您可以调用sync http请求,