0

我有一个应用程序,它在启动时与我的服务器通信并获取一些数据。

我想在应用程序的主页上添加一些“等待窗口”,表明这种通信正在发生。我希望该窗口弹出,主页的其余部分将在后台淡出。

如果成功获取数据,此窗口将消失,然后可以正常使用。如果出现错误,或者无法建立与服务器的连接,我想提供 2 个选项:重试或关闭应用程序。

我的主要挑战是弹出窗口并使主页在后台淡出。任何想法如何做到这一点?

4

1 回答 1

1

在执行 AsyncTask 期间启动一个进度对话框,它从您的服务器获取数据并在获取所有数据后关闭对话框。

你的代码可能是这样的。

class LoadFeed extends AsyncTask<Void,Void,Void>{

    private Dialog progressDialog;
    Context context;

    public LoadFeed(Context context){
        progressDialog = getProgressDialog(context, "Updating Items", "Fetching updates...");
        this.context = context;
    }

    public void onPreExecute() {
        progressDialog.show();
    }

    @Override
    protected Void doInBackground(Void... params) {

        //fetching of data

        return null;

    }

    public void onPostExecute(Void unused) {
        progressDialog.dismiss();
    }

}

public Dialog getProgressDialog(Context context, String title, String msg){

     ProgressDialog dialog = new ProgressDialog(context);
     dialog.setTitle(title);
     dialog.setMessage(msg);
     dialog.setIndeterminate(true);
     dialog.setCancelable(true);

     return dialog;
}
于 2013-03-07T19:05:56.380 回答