У меня есть основной вид деятельности, который запускает дочернюю деятельность, используя следующий код:Android: Прогресс Диалог не Отображение
Intent intent = new Intent();
intent.setClassName(MyChildActivity.class.getPackage().getName(), MyChildActivity.class.getName());
((Activity)context).startActivity(intent);
Я пытаюсь выполнить трудоемкую задачу в детской деятельности и хотел бы, чтобы отобразить ProgressDialog, пока я это делаю. Мой код выглядит так:
private ProgressDialog _progressDialog;
private OnClickListener btn_onClick = new OnClickListener() {
public void onClick(View v) {
_progressDialog = ProgressDialog.show(
v.getContext(),
"Please wait",
"Performing task..."
);
TaskThread t = new ExportThread(v.getContext());
t.start();
}
};
private class TaskThread extends Thread{
private Context _context;
public TaskThread(Context context) {
_context = context;
}
private Handler _handler = new Handler() {
@Override
public void handleMessage(Message msg) {
_progressDialog.dismiss();
}
};
@Override
public void run() {
performTask(_context);
_handler.sendEmptyMessage(0);
}
}
По какой-то причине ProgressDialog не отображается. Если я использую тот же самый код в основном действии, он работает, но не в дочерней активности. Кроме того, следующий код также не отображать ProgressDialog (но Toast делает дисплей):
private ProgressDialog _progressDialog;
private OnClickListener _btn_onClick = new OnClickListener() {
public void onClick(View v) {
_progressDialog = ProgressDialog.show(
v.getContext(),
"Please wait",
"Performing task..."
);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
_progressDialog.dismiss();
Toast.makeText(v.getContext(), "Done with progress dialog.", Toast.LENGTH_SHORT).show();
}
};
Все идеи вне там? Разве нам не разрешено отображать ProgressDialog из дочерней активности?
спасибо.
Спасибо, ArtWorkAD. Я понятия не имею, почему ваше предложение сработало, но так оно и было. Не могли бы вы объяснить мне, почему подход AsyncTask работал, когда подход Thread не сделал этого? Спасибо. – mahdaeng 2010-12-09 22:08:33