首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android中运行方法时是否显示加载对话框?

在Android中运行方法时是否显示加载对话框?
EN

Stack Overflow用户
提问于 2012-06-14 13:29:24
回答 2查看 5.7K关注 0票数 3

我有一个方法设置,大约需要3-5秒来运行(因为它做了一些在线的事情),我想显示一个加载对话框,但我不知道怎么做,我尝试在调用该方法之前启动加载对话框,然后尝试在像这样之后立即关闭它:

代码语言:javascript
运行
复制
dialog.show();
myMethod();
dialog.cancel();

但这并不管用,有没有人有什么建议?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-14 13:39:41

AsyncTask是我的最爱,但您也可以使用处理程序:)

花点时间来体验一下这个不错的blog吧。

下面的代码片段会对你有所帮助。

代码语言:javascript
运行
复制
    package org.sample;

    import android.app.Activity;
    import android.app.ProgressDialog;
    import android.os.Bundle;
    import android.os.Handler;

    public class Hello extends Activity {

        private Handler handler;
        private ProgressDialog dialog;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            dialog = new ProgressDialog(this);
            dialog.setMessage("Please Wait!!");
            dialog.setCancelable(false);
            dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            dialog.show();

            new Thread() {
                public void run() {
                    // Do operation here.
                    // ...
                    // ...
                    // and then mark handler to notify to main thread 
                    // to  remove  progressbar
                    //
                    // handler.sendEmptyMessage(0);
                    //
                    // Or if you want to access UI elements here then
                    //
                    // runOnUiThread(new Runnable() {
                    //
                    //     public void run() {
                    //         Now here you can interact 
                    //         with ui elemements.
                    //
                    //     }
                    // });
                }
            }.start();

            handler = new Handler() {
                public void handleMessage(android.os.Message msg) {
                    dialog.dismiss();
                };
            };
        }
    }
票数 8
EN

Stack Overflow用户

发布于 2012-06-14 13:32:44

在UI线程上运行一个持续时间较长的任务是"no no“。使用AsyncTask在后台运行持续时间较长的任务,并在任务完成时更新UI。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11027147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档