我有一个 ProgressDialog,我无法为爱和金钱展示它。一些研究表明我需要把它放在一个线程中。
所以例子
public void Update(final int ScheduleId, final Context context) {
final Handler progressHandler = new Handler() {
public void handleMessage(Message msg) {
x.dismiss();
}
};
x = ProgressDialog.show(context, "Scheduling...", "Calculating and Storing Dates", true, false);
new Thread() {
public void run() {
// Do Nothing
boolean bResult = UpdateHistory(ScheduleId, context);
Log.i("HERE","Finished Here?");
if (bResult) {
progressHandler.sendEmptyMessage(0);
}
}
}.start();
}
但对我来说似乎发生的一切是微调器从屏幕上消失并且活动结束,而 UpdateHistory 继续在后台运行。
如果我将对 UpdateHistory 的调用移到 .start() 下方(线程外部),则根本不会显示进度微调器。
我到底错过了什么?
所有这些代码都在一个活动中。
你能推荐什么,大多数网站似乎都在谈论线程,我已经尝试过尽你所能,正如我所说,我要么让线程在后台运行,然后显示一秒钟的微调器,要么我当函数在前台运行时,根本没有微调器。
谢谢西蒙