0

我正在使用 google api lib 创建地图。因为 mapwidget 需要很长时间才能加载,所以我尝试添加加载通知,但未显示。我可以在常规线程中显示progressDialog。这个对话框怎么不显示?

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);



        progressDialog = ProgressDialog.show(this, "Please Wait", "Map = loading",false,true);
        //setContentView(R.layout.map);
        runOnUiThread(new Runnable(){
            public void run() {
                try{
                    Log.d("debug", "before setContentView");                        //13:36:25
                    setContentView(R.layout.map);
                    Log.d("debug", "after setContentView");                         //13:36:39

                } catch (Exception e) { }

                progressDialog.dismiss();
            }});

        initMap();     
        initGps();

    }
4

2 回答 2

1

设置 a 是没有意义的ProgressDialogMapActivity因为“mapwidget 需要很长时间才能加载”,因为您无法知道何时MapView完成加载,因此您无法知道何时关闭对话框。setContentView()本身应该运行得相当快;地图瓦片的实际加载是异步发生的。

请注意,显示 a 所需的时间MapView主要取决于返回 Google Maps 服务器的 Internet 连接。在大多数情况下,它不会花费特别长的时间,当然也不足以保证ProgressDialog.

于 2011-03-30T12:47:38.580 回答
0

将此用作解决方案:

http://mindtherobot.com/blog/159/android-guts-intro-to-loopers-and-handlers/

于 2011-04-19T15:46:30.560 回答