【问题标题】:Show waiting notification till callback returns from thread显示等待通知,直到回调从线程返回
【发布时间】:2013-02-14 12:05:15
【问题描述】:
我是 android 新手,遇到这种情况
我正在从 Activity UI 调用一个线程。线程在做一些后台操作后会返回回调函数。
在此之前我需要在 Activity UI 中显示等待通知。[有效地冻结应用直到回调返回]
我尝试了状态标志和异步任务,但部分成功。
请告诉我这个问题的最佳解决方案。
【问题讨论】:
标签:
android
multithreading
callback
android-asynctask
android-activity
【解决方案2】:
您需要在开始线程之前显示进度对话框。
private CustomizeDialog mCustomizeDialog = null;
//in onCreate method
mSubmitButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//checking few condition
mCustomizeDialog = new CustomizeDialog(makeRequestActivity.this);
mCustomizeDialog.setTitle("Confirmation");
mCustomizeDialog.setMessage("Make Request?");
mCustomizeDialog.okButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mCustomizeDialog.dismiss();
show();
});
mCustomizeDialog.show();
private void show() {
mCustomizeDialog = new CustomizeDialog(makeRequestActivity.this);
mCustomizeDialog.setTitle("Requesting");
mCustomizeDialog.setMessage("Connecting...");
mCustomizeDialog.okButton.setVisibility(View.GONE);
mCustomizeDialog.cancelButton.setVisibility(View.GONE);
mCustomizeDialog.show();
}
在我的广播接收器中
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(request.CUSTOM_INTENT_MENU)) {
mExtras = intent.getExtras();
String result = mExtras.getString("tag");
if (mCustomizeDialog.isShowing()) {
mCustomizeDialog.dismiss();
}
}
};