Android 从活动中调用AsyncTask
对于这个代码片段(我已经排除了Android 从活动中调用AsyncTask,android,asynchronous,Android,Asynchronous,对于这个代码片段(我已经排除了doInBackground()、postExecute()等) 从CheckServer活动调用异步任务时,如何传递Activity参数 public class CheckServer extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub
doInBackground()、postExecute()
等)
从CheckServer活动调用异步任务时,如何传递Activity参数
public class CheckServer extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
HttpTicket ticket= new HttpTicket(); //HOW IS THIS LINE DONE? WHAT PARAM SHOULD BE PASSED?
}
@SuppressWarnings("unused")
private class HttpTicket extends AsyncTask<String, String, String>
{
private Activity activity;
private ProgressDialog dialog;
public HttpTicket(Activity activity) {
this.activity = activity;
}
公共类CheckServer扩展活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
//TODO自动生成的方法存根
super.onCreate(savedInstanceState);
HttpTicket ticket=new HttpTicket();//这行是如何完成的?应该传递什么参数?
}
@抑制警告(“未使用”)
私有类HttpTicket扩展异步任务
{
私人活动;
私人对话;
公共HttpTicket(活动){
这个。活动=活动;
}
在活动onCreate()中
定义异步任务如下
private class HttpTicket extends AsyncTask<String, String, String>
{
private Activity activity;
private ProgressDialog dialog;
public HttpTicket(Activity activity) {
this.activity = activity;
dialog = new ProgressDialog(activity);
dialog.setTitle("Wait...");
}
protected void onPreExecute()
{
dialog.show();
}
protected String doInBackground(String params)
{
//background opearation
return "string";
}
protected void onPostExecute(String result)
{
dialog.dismiss();
//update ui
}
}
私有类HttpTicket扩展异步任务
{
私人活动;
私人对话;
公共HttpTicket(活动){
这个。活动=活动;
dialog=新建进度对话框(活动);
setTitle(“等待…”);
}
受保护的void onPreExecute()
{
dialog.show();
}
受保护的字符串doInBackground(字符串参数)
{
//背景操作
返回“字符串”;
}
受保护的void onPostExecute(字符串结果)
{
dialog.dismise();
//更新用户界面
}
}
你可以这么做
HttpTicket mHttpTicket = new HttpTicket(this);
mHttpTicket.execute();
还可以删除构造函数,并将其作为参数传递给OnPreExecute。然后在
execute(this);
创建构造函数HttpTicket(Activity)。HttpTicket ticket=new HttpTicket(Activity.this);ticket.execute();
HttpTicket mHttpTicket = new HttpTicket(this);
mHttpTicket.execute();