• <legend id='QZaoS'><style id='QZaoS'><dir id='QZaoS'><q id='QZaoS'></q></dir></style></legend>

      <i id='QZaoS'><tr id='QZaoS'><dt id='QZaoS'><q id='QZaoS'><span id='QZaoS'><b id='QZaoS'><form id='QZaoS'><ins id='QZaoS'></ins><ul id='QZaoS'></ul><sub id='QZaoS'></sub></form><legend id='QZaoS'></legend><bdo id='QZaoS'><pre id='QZaoS'><center id='QZaoS'></center></pre></bdo></b><th id='QZaoS'></th></span></q></dt></tr></i><div id='QZaoS'><tfoot id='QZaoS'></tfoot><dl id='QZaoS'><fieldset id='QZaoS'></fieldset></dl></div>

        <bdo id='QZaoS'></bdo><ul id='QZaoS'></ul>

        <tfoot id='QZaoS'></tfoot>

        <small id='QZaoS'></small><noframes id='QZaoS'>

        在非活动类中显示进度对话框

        时间:2023-08-30
        <legend id='arVTL'><style id='arVTL'><dir id='arVTL'><q id='arVTL'></q></dir></style></legend>

            <tbody id='arVTL'></tbody>
            <tfoot id='arVTL'></tfoot>
            • <bdo id='arVTL'></bdo><ul id='arVTL'></ul>
            • <i id='arVTL'><tr id='arVTL'><dt id='arVTL'><q id='arVTL'><span id='arVTL'><b id='arVTL'><form id='arVTL'><ins id='arVTL'></ins><ul id='arVTL'></ul><sub id='arVTL'></sub></form><legend id='arVTL'></legend><bdo id='arVTL'><pre id='arVTL'><center id='arVTL'></center></pre></bdo></b><th id='arVTL'></th></span></q></dt></tr></i><div id='arVTL'><tfoot id='arVTL'></tfoot><dl id='arVTL'><fieldset id='arVTL'></fieldset></dl></div>

              <small id='arVTL'></small><noframes id='arVTL'>

                • 本文介绍了在非活动类中显示进度对话框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我正在尝试在非 Activity 类中显示对话框.基本上,我在我的应用程序中检测到一个对象,我想显示一个对话框然后切换活动.我在我的 logcat 中收到java.lang.RuntimeException:无法在未调用 Looper.prepare() 的线程内创建处理程序".

                  I am trying to display a dialog in a non-Activity class. Basically, I detect an object in my app, I would like to display a dialog and then switch activities. I'm getting a "java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()" in my logcat.

                  这是我的一些代码:

                  public ImageTargetsRenderer(Context context) {
                      this.context = context;
                      mDialog = new ProgressDialog(context);
                    }
                  
                  public void onDrawFrame(GL10 gl) {
                      testFlag = 0;
                  
                      // DO NOT RENDER IF THERE IS NO TRACKABLE
                      if (!mIsActive)
                          return;
                  
                      // Call our native function to render content
                      // RENDER IF THERE IS A TRACKABLE
                      testFlag = renderFrame();
                  
                      System.err.println("ImageTargetsRenderer reports: " + testFlag);
                  
                      if(testFlag > 0 && frameCount > 5)
                      {
                          frameCount = 0;
                          System.err.println("Starting to switch activities.");
                  
                          mDialog.setTitle("Please wait");
                          mDialog.setMessage("Please wait");
                          mDialog.show();
                  
                          new Thread() {
                              public void run() {
                                          try{
                                              sleep(5000);
                                          } catch (Exception e) { }
                                  // Dismiss the Dialog
                                  mDialog.dismiss();
                              }
                          }.start();
                  
                  
                          Intent myIntent = new Intent(context, FlashActivity.class);
                          myIntent.putExtra("com.qualcomm.QCARSamples.ImageTargets.flagTest", testFlag);
                          myIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                          context.startActivity(myIntent);
                          testFlag = 0; 
                  
                          return;
                      }
                      frameCount++;
                  
                  
                  }
                  

                  推荐答案

                  你的 Dialog 应该从 UIthread 调用,所以尝试使用它,

                  Your Dialog should be called from the UIthread so try to use this,

                  context.this.runOnUiThread(new Runnable() {
                  
                              @Override
                              public void run() {
                                  mDialog.show();
                  
                              }
                          });
                  

                  希望这行得通.

                  这篇关于在非活动类中显示进度对话框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:Android:为什么 DialogFragment 在方向更改时返回空指 下一篇:如何使用 setText() 在自定义布局对话框中编辑文本

                  相关文章

                  最新文章

                • <legend id='DdZQ3'><style id='DdZQ3'><dir id='DdZQ3'><q id='DdZQ3'></q></dir></style></legend>
                    <bdo id='DdZQ3'></bdo><ul id='DdZQ3'></ul>

                    <small id='DdZQ3'></small><noframes id='DdZQ3'>

                  1. <tfoot id='DdZQ3'></tfoot>
                    1. <i id='DdZQ3'><tr id='DdZQ3'><dt id='DdZQ3'><q id='DdZQ3'><span id='DdZQ3'><b id='DdZQ3'><form id='DdZQ3'><ins id='DdZQ3'></ins><ul id='DdZQ3'></ul><sub id='DdZQ3'></sub></form><legend id='DdZQ3'></legend><bdo id='DdZQ3'><pre id='DdZQ3'><center id='DdZQ3'></center></pre></bdo></b><th id='DdZQ3'></th></span></q></dt></tr></i><div id='DdZQ3'><tfoot id='DdZQ3'></tfoot><dl id='DdZQ3'><fieldset id='DdZQ3'></fieldset></dl></div>