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