繁体   English   中英

Android:进度对话框未显示

[英]Android: Progress Dialog Not Displaying

我有一个主要活动,它使用以下代码启动子活动:

Intent intent = new Intent();
intent.setClassName(MyChildActivity.class.getPackage().getName(), MyChildActivity.class.getName());
((Activity)context).startActivity(intent);

我正在尝试在子活动中执行一项耗时的任务,并希望在执行此操作时显示一个ProgressDialog。 我的代码如下所示:

private ProgressDialog _progressDialog;

private OnClickListener btn_onClick = new OnClickListener() {
    public void onClick(View v) {
        _progressDialog = ProgressDialog.show(
            v.getContext(),
            "Please wait",
            "Performing task..."
        );

        TaskThread t = new ExportThread(v.getContext());
        t.start();
    }
};

private class TaskThread extends Thread{
    private Context _context;

    public TaskThread(Context context) {
        _context = context;
    }

    private Handler _handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            _progressDialog.dismiss();
        }
    };


    @Override
    public void run() {
        performTask(_context);
        _handler.sendEmptyMessage(0);
    }
}

由于某种原因,ProgressDialog没有显示。 如果我在主要活动中使用相同的代码,则可以使用-但在子活动中则无效。 此外,以下代码也无法显示ProgressDialog(但会显示Toast):

private ProgressDialog _progressDialog;

private OnClickListener _btn_onClick = new OnClickListener() {
    public void onClick(View v) {
        _progressDialog = ProgressDialog.show(
            v.getContext(),
            "Please wait",
            "Performing task..."
        );

        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        _progressDialog.dismiss();

        Toast.makeText(v.getContext(), "Done with progress dialog.", Toast.LENGTH_SHORT).show();
    }
};

有什么想法吗? 不允许我们从子活动中显示ProgressDialog吗?

谢谢。

为什么使用线程而不是异步任务

异步任务实现了onProgressUpdatepublishProgress方法,可轻松显示和更新UI /进度对话框。

这是一些示例代码: http : //android-projects.de/2010/12/08/threading-in-android-apps-wir-entwickeln-einen-zahler/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM