等待回调完成对话框

时间:2011-10-11 12:45:01

标签: android

我是Android开发的新手,所以请光临我。 我有一个GPS类,它通过回调将当前GPS坐标返回到呼叫活动。

用户拍照或从库中选择一张,然后返回主活动。在他返回主活动后,我轮询gps类以获取位置数据。 一旦回调返回,它就会更新两个类属性,一个用于Lat,一个用于Lon。

有时需要几秒钟才能调用回调,我希望活动等待回调并向用户显示某种对话框。

目前我只是使用while循环来等待属性更新,但我确信有一个更优雅的解决方案。

谢谢!

1 个答案:

答案 0 :(得分:3)

使用线程:

private ProgressDialog progressDialog;

protected void btnDoOperation_onClick() {

    final Runnable r = new Runnable()
    {
        public void run()
        {
            doMyOperations();
        }
    };

    progressDialog = ProgressDialog.show(this, "title","Please wait");
    performOnBackgroundThread(r);
}

public static Thread performOnBackgroundThread(final Runnable runnable) {
    final Thread t = new Thread() {
        @Override
        public void run() {
            try {
                runnable.run();
            } finally {

            }
        }
    };
    t.start();
    return t;
}

private void doMyOperations() {

    // do every thing you like here ;)

    this.runOnUiThread(new Runnable() {
        public void run() {
             progressDialog.dismiss();                  
        }
    });
}