【发布时间】:2016-10-31 15:00:55
【问题描述】:
我正在开发一个安卓应用程序,我需要从互联网上获取数据。 我在 Homepage.java 中声明了一个“私有进度对话框”。 在 onCreate() 方法中,调用函数
dialog = ProgressDialog.show(Homepage.this, "Connecting", "Please wait for a while...", true);
并创建另一个线程来获取数据,并在finally块中调用
"dialog.dismiss()"
整个 onResume() 代码如下所示。
@Override
protected void onResume(){
super.onResume();
Log.e(TAG, "onResume");
dialog = ProgressDialog.show(Homepage.this, "Connecting", "Please wait for a while..", true);
/******Start fetching data.******/
Thread getDataThread = new Thread() {
@Override
public void run() {
try {
try {
getData();
} catch (JSONException e) {
alert_error();
e.printStackTrace();
} catch (IOException e) {
alert_error();
e.printStackTrace();
} finally {
dialog.dismiss();
}
} catch (SQLException e) {
alert_error();
e.printStackTrace();
} catch (ExecutionException e) {
alert_error();
e.printStackTrace();
} catch (InterruptedException e) {
alert_error();
e.printStackTrace();
}finally{
dialog.dismiss();
}
}
};
getDataThread.start();
}
起初,这很好用。(旋转器显示) 但是在某些时候(我不记得什么时候了),对话框仍然有效,但微调器消失了 如下图所示(红线处应为spinner显示处) Spinner is gone
对话框仍然有效,但是从这个应用程序的任何地方调用的所有 ProgressDialog,微调器都消失了。(甚至没有出现)
如果我将获取数据从互联网部分更改为休眠 10 秒 如下图所示
@Override
protected void onResume(){
super.onResume();
Log.e(TAG, "onResume");
dialog = ProgressDialog.show(Homepage.this, "Connecting", "Please wait for a while...", true);
/******Start fetching data.******/
Thread getDataThread = new Thread() {
@Override
public void run() {
try {
sleep(10*1000);
} catch (InterruptedException e) {
e.printStackTrace();
dialog.dismiss;
}
}
};
getDataThread.start();
}
微调器仍然没有出现。
我认为这可能与我的项目中的全局设置或值有关,我只使用一种方法而不是 super.onCreate 和 setContentView 创建了一个空活动 我打了电话 "ProgressDialog 对话框 = ProgressDialog.show(Homepage.this, "123", "456", true);"
并且微调器仍然没有出现!
但如果我创建一个新项目并添加相同的代码,它就可以工作!
提前致谢!
【问题讨论】:
-
将您的课程发布到您正在打开微调器并获取数据的位置,以便提供帮助。
-
在此处显示您的代码
-
已添加代码。由于此应用程序的隐私问题和安全问题,我无法显示其余部分。但是除了这个activity(Homepage.java)之外,任何其他activity都面临同样的问题,那就是spinner不见了。
-
其余部分与 ProgressDialog 无关。
-
您在显示微调器时遇到问题,但未包含与此相关的代码。您只显示获取数据代码。你在哪里填充微调器显示该代码。
标签: android android-layout progressdialog android-progressbar