AsyncTask的(异步进程) [英] AsyncTask (Asynchronous processes)
问题描述
我有一个关于异步任务问题
I have a problem regarding Async task
2使用活动的A和B
输入一个字从DTO URL和和存储值搜索,然后取出由getter和setter值。
by entering a word to search from the url and and store value in DTO and then fetching values from getter and setter.
我复杂的是,我已经在异步我的活动B落实,活动从获取相同的DTO值。
My complication is that i have implemented async in my activity "B" and that activity is fetching value from same DTO.
问题是,我的帖子是怎么知道的背景下,这样做从DTO和DTO在缓慢的互联网连接的情况下获取的价值有从互联网上获取的价值......。
Problem is that how my post know that do in background have fetched value from DTO and DTO have fetched value from internet...in case of slow internet connection.
我米从A发送意图B,并显示在B
I m sending intent from "A" to "B" and showing the results on "B"
问题:
1。如果我删除异步然后应用显示黑页,并且还冻结(仅在连接速度慢的情况下),但数据显示
2。如果我使用aync然后有时进度对话框显示了很长一段时间,知道这些数据的inspite已经显示在用户界面
code链接 https://www.dropbox.com/s/p27rpokz68sryv3 /SearchData.java
https://www.dropbox.com/s/rm3i52djiay327u/SearchData_DTO.java
https://www.dropbox.com/s/2hpufx2a12480on/Search.java
PLS建议我这样做的可能的解决方案
Pls suggest me the possible solution for this
问候
推荐答案
您需要监听asyntask完整的听众,对于让你的酶活性的impliment接口并调用从活动B的方法,S Asyntask,S onpostexecute方法
这样的活动为您会知道B已经完成了他的任务,你可以做接下来的事情..
希望这有助于
You need to listen for asyntask complete listener, For that let your activity A impliment interface and call that method from Activity B,s Asyntask,s onpostexecute method Thus your activity A will come to know that B has finished his task and you can do next thing.. Hope this helps
public interface AsyncTaskCompletedListener {
public void OnResultSucceeded(String result);
}
public class LoginAsyncTask extends AsyncTask<String, Void, String> {
AsyncTaskCompletedListener mAsyncTaskCompletedListener;
@Override
protected String doInBackground(String... arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
mAsyncTaskCompletedListener.OnResultSucceeded(result);
}
}
下面的接口让活动A impliment这一点,并从活动调用这个从onpostexecute
Here is the interface Let Activity A impliment this and from Activity invoke this from onpostexecute
From Activity A
LoginAsyncTask customloginasync = new LoginAsyncTask(getActivity(),
FATCH_USER_LIST, arglist);
customloginasync.execute();
customloginasync.setOnResultsListener(new AsyncTaskCompletedListener() {
@Override
public void OnResultSucceeded(String result, int asyncTaskNo) {
Logger.logInfo("CustomLogin data=========" + result);
ParseAvailableUserData(result);
}
});
这篇关于AsyncTask的(异步进程)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!