Android 在运行另一个任务时运行进度条

Android 在运行另一个任务时运行进度条,android,progress-bar,Android,Progress Bar,我有一个活动类,当点击一个按钮时,我调用一个更新一些数据的函数。下面是函数 “开始导入” 此函数在内部使用Thread.sleep(10000)等待另一个任务完成 因此,当这个功能正在进行时,我计划显示一个进度条。 “showProgress”是显示进度条的功能 我已经编写了下面的代码来显示进度条,而我的任务在oncreate函数中运行 new Thread(new Runnable() { @Override public void run() {

我有一个活动类,当点击一个按钮时,我调用一个更新一些数据的函数。下面是函数 “开始导入”

此函数在内部使用Thread.sleep(10000)等待另一个任务完成

因此,当这个功能正在进行时,我计划显示一个进度条。 “showProgress”是显示进度条的功能

我已经编写了下面的代码来显示进度条,而我的任务在oncreate函数中运行

    new Thread(new Runnable() {
        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    showProgress();
                }
            });
        }
    }).start();

    new Thread(new Runnable() {
        @Override
        public void run() {
            startDIImport();
        }
    }).start();
但当我点击按钮时,我的进度条挂起。你能帮我解决这个问题吗

我已经检查了AsyncTask,但我知道只有在后台任务运行几秒钟时才能使用它。我的后台任务可能要运行几个小时。
请告诉我处理此问题的最佳解决方案。

使用此代码在ui线程上运行代码。此外,永远不要使用Thread.sleep(),而是使用适当的回调机制。显示更多的代码,很难看到您正在尝试做什么

 Handler handler = new Handler(Looper.getMainLooper());
        handler.post(new Runnable() {
            @Override
            public void run() {
                showProgress();
            }
        });

你能展示一下你的
onClick
方法吗?@RaphaelTeyssandier-Hi,谢谢你的回复。单击按钮后,我将调用另一个活动。我正在新活动的onCreate函数中创建上述线程。因此您有两个活动?@RaphaelTeyssandier是的。我有两个活动。当在第一个活动上单击一个按钮时,我正在创建新活动并创建上述两个线程。