나는 핸들러를 매개 변수로 사용하고 doBackground에서 HandlersendEmptyMessage (0)를 보내는 동안 간단한 ProgressDialoge로드 뷰를로드하는 간단한 AsyncTask 클래스를 개발했지만 어떤 이유로 든 끝까지 표시하지 않습니다. 내 Handler 객체 안에있는 내용을 실행하는 것입니다 (즉, progressDialogue가 끝에 깜박임). 여기 안드로이드 진행 dialoge보기가 보이지 않는다
내 AsyncTask를하다 :package com.kc.util;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Handler;
import android.util.Log;
public class LoadDialoge extends AsyncTask<Handler, Integer, Void> {
private ProgressDialog progressDialog;
private String TAG = "LoadDialoge";
private Context mContext;
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
progressDialog.dismiss();
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
showWait();
}
@Override
protected Void doInBackground(Handler... params) {
// TODO Auto-generated method stub
for(Handler mHandler : params){
mHandler.sendEmptyMessage(0);
Log.d(TAG, "handler sending message");
}
return null;
}
private void showWait() {
Log.d(TAG, "showWait");
progressDialog = new ProgressDialog(mContext);
progressDialog.setTitle("Retrieving contact details");
progressDialog.setMessage("Please wait...");
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.show();
Log.d(TAG, " ");
}
public void setmContext(Context mContext) {
this.mContext = mContext;
}
}
그리고 여기에 내가 활동에서이 클래스에 전달 된 핸들러 :
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
Log.d(TAG, "handleMessage");
initialiseOnItemClickListeners();
initialiseOnClickListeners();
initialiseListViewAdapters();
loadDataToDb();
initializeTitles();
initialize();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.abstract_main_menu);
LoadDialoge load = new LoadDialoge();
load.setmContext(this);
load.execute(mHandler);
}
임 어떤에서 작동하는 일반 비동기로드 화면을 만들려고 액티비티 (위의 LoadDialogue AsyncTask를 복사하여 붙여 넣기 대신에 사용하기를 원합니다.