代码之家  ›  专栏  ›  技术社区  ›  nikib3ro

Android-正在加载,请稍候

  •  27
  • nikib3ro  · 技术社区  · 15 年前

    当我调用一些异步任务(例如从远程服务下载一些数据)时,是否有一个标准的“加载,请等待”对话框可以在Android开发中使用?

    3 回复  |  直到 8 年前
        1
  •  73
  •   zeeawan    8 年前

    你的意思是某种不确定的东西 ProgressDialog ?

    编辑:即

    ProgressDialog dialog = ProgressDialog.show(context, "Loading", "Please wait...", true);
    

    然后打电话 dialog.dismiss() 做完之后。

        2
  •  19
  •   RobertoAllende    11 年前

    如果您实现了可运行和扩展活动,那么您可以像这样处理代码…

    private ProgressDialog pDialog;
    
    public void downloadData() {
        pDialog = ProgressDialog.show(this, "Downloading Data..", "Please wait", true,false);
        Thread thread = new Thread(this);
        thread.start();
    }
    
    public void run() {
    // add downloading code here
        handler.sendEmptyMessage(0);
     }
    
    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            pDialog().dismiss();
            // handle the result here
        }
    };
    

    值得一提的是,您可以设置进度对话框的内容视图,以便显示自定义消息/图像:)

    pDialog.setContentView(R.layout.X); 
    
        3
  •  10
  •   Dan Lew    15 年前

    Mirko基本上是正确的,但是有两件事需要注意:

    1. ProgressDialog.show() 是自动创建对话框的快捷方式。与其他对话框不同,不应在 onCreateDialog() ,因为它会在Android 1.5中导致错误。

    2. AsyncTask+ProgressDialog+屏幕方向更改还有一些您应该注意的问题- check this out .