public class OK_Genuine extends Activity implements OnClickListener {
ImageView ok, cancel;
String QRcode;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.result_page);
setLayout();
QRcode = getIntent().getExtras().getString("QRcode");
}
private void setLayout() {
ok = (ImageView) findViewById(R.id.result_ok);
cancel = (ImageView) findViewById(R.id.result_cencel);
ok.setOnClickListener(this);
cancel.setOnClickListener(this);
}
@Override
public void onClick(View v) {
find_your_current_location();
}
public void find_your_current_location(){
WaitForLocationUpdate updateThread = new WaitForLocationUpdate(this);
updateThread.execute();
while(!updateThread.isCancelled()){}
Intent intent = new Intent(OK_Genuine.this, Not_Geo.class);
startActivity(intent);
// 현재 액티비티를 종료
OK_Genuine.this.finish();
}
public class WaitForLocationUpdate extends AsyncTask<Void, Integer, Integer> {
ProgressDialog progressDialog;
Context mContext;
public WaitForLocationUpdate(Context context) {
mContext = context;
}
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(mContext);
progressDialog.setMessage("업데이트...");
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setCancelable(false);
progressDialog.setMax(5);
progressDialog.show();
super.onPreExecute();
}
@Override
protected Integer doInBackground(Void... param)
{
int i = 0;
try{
for(i = 0; i < 5; i++){
Thread.sleep(1000);
publishProgress(i + 1);
}
} catch(Exception e){ }
cancel(true);
return i;
}
@Override
protected void onPostExecute(Integer result)
{
Toast toast = Toast.makeText(mContext, Integer.toString(result), Toast.LENGTH_LONG);
toast.show();
progressDialog.dismiss();
super.onPostExecute(result);
}
@Override
protected void onProgressUpdate(Integer... values) {
progressDialog.setProgress(values[0]);
}
}
}
액티비티에서 버튼을 눌렀을 때
AsyncTask를 만들고 ProgressDialog로 작업 중 진행상황을 보여주려고 합니다.
만들긴 했는데
지금 문제가 시작되는 시점에서 다이얼로그가 출력되지 않고
작업이 끝나는 시점에서 진행이 완료된 다이얼로그만 잠깐 나왔다가 사라집니다.
문제점이 뭔지 찾을 수가 없네요.
경험있으신 분의 힌트를 부탁드리겠습니다.