我有一个活动类如下。等待后台任务的完成
public class LoginActivity extends Activity implements OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button1 = (ImageView) findViewById(R.id.button1);
button1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
BackgroundRunner bgRunner = new BackgroundRunner(this);
String[] params = new String[]{url};
bgRunner.execute(params);
}
}
而且是的AsyncTask:
public class BackgroundRunner extends AsyncTask<String, Void, Boolean> {
@Override
protected Boolean doInBackground(String... params) {
ServiceCaller serviceCaller = new ServiceCaller();
boolean status = serviceCaller.checkLogin(params[0]);
return status;
}
@Override
public void onPreExecute(){
progressBar = (ProgressBar) currentContext.findViewById(R.id.loader);
progressBar.setVisibility(View.VISIBLE);
}
@Override
public void onPostExecute(final Boolean status){
progressBar.setVisibility(View.INVISIBLE);
}
}
下面是这种情况。主要活动类在点击上创建一个线程。然后创建的线程从服务器获取一些数据。这是一项耗时的任务。所以在UI上显示一个进度条。目前我正在使用AsyncTask来完成服务器数据检索。但真正的挑战是等待后台任务完成并从中获得价值。我正在寻找的是:
等到服务器调用完成并获得结果。同时显示进度条。我认为Handler会是一个选择。我对此不太清楚。
有什么想法?如果我混淆你的道歉。
在此先感谢!
有没有你不使用,片段支持,而代之以AsychTask理由吗?有了一个片段(在你的情况下没有UI),你可以创建一个事务并询问结果,类似于你开始活动的结果 – quinestor
我会试试看! – Renjith