Android在等待位置时显示进度对话框

Android在等待位置时显示进度对话框,android,android-location,Android,Android Location,我正在使用以下示例开发基于位置的应用程序: 但当我打开电话时,那个位置在那个时刻不可用。所以我想在等待位置时显示进度对话框。希望在后台使用AsyncTask执行此操作 你能告诉我怎么做以及在哪里做吗?不需要AsyncTask,因为位置服务已经在不同的进程中运行,只需实现LocationListener并在resume方法上注册它,在onCreateActivity检查位置是否为空时,显示ProgressDialog,并在onLocationChanged()中设置位置并关闭ProgressDia

我正在使用以下示例开发基于位置的应用程序:

但当我打开电话时,那个位置在那个时刻不可用。所以我想在等待位置时显示进度对话框。希望在后台使用AsyncTask执行此操作


你能告诉我怎么做以及在哪里做吗?

不需要AsyncTask,因为位置服务已经在不同的进程中运行,只需实现
LocationListener
并在resume方法上注册它,在onCreateActivity检查位置是否为空时,显示
ProgressDialog
,并在
onLocationChanged()
中设置位置并关闭
ProgressDialog

将ProgressDialog置于onPreExecute中,示例代码如下:

private ProgressDialog progressdialog;

@Override
protected void onPreExecute(){ 
   super.onPreExecute();
        progressdialog = new ProgressDialog(yourContext);
        progressdialog.setMessage("Loading...");
        progressdialog.show();    
}

@Override
protected void onPostExecute(){
   super.onPostExecute();
        progressdialog.dismiss();
}

实现locationListner接口并启动您的等待对话框覆盖onlocation更改方法,然后取消对话框,一切顺利

公共类MainActivity扩展活动实现LocationListener{

ProgressDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //-------------------- Start your GPS Reading ------------------ //
    dialog = new ProgressDialog(this);
    dialog.setMessage("Please wait!");
    dialog.show();

}
@Override
public void onLocationChanged(Location arg0) {
    dialog.dismiss();
}

@Override
public void onProviderDisabled(String provider) {
    // TODO Auto-generated method stub

}

@Override
public void onProviderEnabled(String provider) {
    // TODO Auto-generated method stub

}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
    // TODO Auto-generated method stub

}

我把它放在哪里?在我的MainActivity中?因为我想显示它,直到我得到我的位置!当我得到纬度和经度时,我想禁用该对话框