Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 显示等待通知,直到回调从线程返回_Android_Multithreading_Callback_Android Asynctask_Android Activity - Fatal编程技术网

Android 显示等待通知,直到回调从线程返回

Android 显示等待通知,直到回调从线程返回,android,multithreading,callback,android-asynctask,android-activity,Android,Multithreading,Callback,Android Asynctask,Android Activity,我对安卓系统还不熟悉,我被这种情况困住了 我正在从活动UI调用线程。线程在执行一些后台操作后将返回回调函数 在此之前,我需要在活动UI中显示等待通知。[有效地冻结应用程序,直到回调返回] 我尝试使用状态标志和异步任务,但部分成功 请告诉我此问题的最佳解决方案。在启动线程之前显示进度,并在返回之前关闭进度对话框 有关“进度”对话框的更多信息,请参见此链接:您需要在启动线程之前显示“进度”对话框 private CustomizeDialog mCustomizeDialog = null;

我对安卓系统还不熟悉,我被这种情况困住了

我正在从活动UI调用线程。线程在执行一些后台操作后将返回回调函数

在此之前,我需要在活动UI中显示等待通知。[有效地冻结应用程序,直到回调返回]

我尝试使用状态标志和异步任务,但部分成功


请告诉我此问题的最佳解决方案。

在启动线程之前显示进度,并在返回之前关闭进度对话框


有关“进度”对话框的更多信息,请参见此链接:

您需要在启动线程之前显示“进度”对话框

  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();
            }
           }
};