我是Android新手,我遇到了这种情况
我从Activity UI调用一个线程。执行一些后台操作后,线程将返回回调函数。
然后我需要在Activity UI中显示等待通知。[有效冻结应用程序直到回调返回]
我尝试使用状态标志和异步任务,但部分成功。
请告诉我这个问题的最佳解决方案。
答案 0 :(得分:0)
在启动线程之前显示进度并在返回之前关闭进度对话框。
有关进度对话框的详情,请参阅以下链接:http://developer.android.com/reference/android/app/ProgressDialog.html
答案 1 :(得分:0)
您需要在启动线程之前显示进度对话框。
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();
}
}
};