我是Android开发新手。我创建了一个示例地图应用程序,一旦我们输入位置代码,将在加载位置时显示ProgressDialog。显示位置后,将取消ProgressDialog,但即使在后台显示该位置后,它也会继续运行。 以下是我的代码。
Thread background = new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(5000);
if(webLocation == true){
progressDialog.dismiss();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
background.start();
}
一旦显示位置,任何人都可以给我一个停止ProgressDialog的解决方案。我无法了解这个解决方案,如果有人有一些想法或解决方案,它对我有帮助。
答案 0 :(得分:2)
尝试替换
if(webLocation = true)
通过
if(webLocation == true) or if (webLocation)
您基本上将值true
分配给变量webLocation
。您应该进行比较,因此请使用==
。
你应该更好地使用AsyncTask
类,而不是使用5秒的睡眠线程(这是硬编码值)。
1)onPreExecute()
执行以下progressDialog.show()
2)以doInBackGround
方法获取位置。在调用thar onPostExecute
之后,在此方法中执行以下操作
if (progressDialog.isShowing())
progressDialog.dismiss();
答案 1 :(得分:0)
试试这个
Thread background = new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(5000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
runOnUiThread(new Runnable() {
@Override
public void run() {
.
// TODO Auto-generated method stub
enter code here
if(webLocation = true){
progressDialog.dismiss();
}
}
});
}
});
background.start();
}