Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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 在活动开始时使用ProgressDialog“;“主要”;与此调用具有多个功能_Android_Multithreading_Handler_Progressdialog - Fatal编程技术网

Android 在活动开始时使用ProgressDialog“;“主要”;与此调用具有多个功能

Android 在活动开始时使用ProgressDialog“;“主要”;与此调用具有多个功能,android,multithreading,handler,progressdialog,Android,Multithreading,Handler,Progressdialog,我确实在搜索如何在活动“Main”的开头显示加载,但同时该活动必须调用某些函数,因此我使用以下代码: ProgressDialog bar; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); loading(); } private void loading

我确实在搜索如何在活动“Main”的开头显示加载,但同时该活动必须调用某些函数,因此我使用以下代码:

ProgressDialog bar;

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 

        loading();
}


private void loading() {
          bar = ProgressDialog.show(this, "Please wait",
                  "Long operation starts...", true);

          new Thread((new Runnable() {
              @Override
              public void run() {
                  bar.setMessage("Loading...");
                  initLocalisation();
                      initTabhost();
              }
          })).start();
  }

public void msgbox(String str) {
        Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
    }
事实上,它向我显示了以下错误:

FATAL EXCEPTION: Thread-99
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:121)
at android.widget.Toast$TN.<init>(Toast.java:317)
at android.widget.Toast.<init>(Toast.java:91)
at android.widget.Toast.makeText(Toast.java:233)
at com.main.Main.msgbox(Main.java:519)
at com.main.Main.updateWithNewLocation(Main.java:148)
at com.main.Main.initLocalisation(Main.java:204)
at com.main.Main$4.run(Main.java:172)
at java.lang.Thread.run(Thread.java:856)
致命异常:Thread-99
java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序
android.os.Handler.(Handler.java:121)
在android.widget.Toast$TN.(Toast.java:317)
在android.widget.Toast.(Toast.java:91)
位于android.widget.Toast.makeText(Toast.java:233)
位于com.main.main.msgbox(main.java:519)
位于com.main.main.updateWithNewLocation(main.java:148)
位于com.main.main.initLocalization(main.java:204)
在com.main.main$4.run(main.java:172)
运行(Thread.java:856)

您无法从非UI线程访问UI。你需要阅读这份题为的文件