我有一个应用程序,它在启动时与我的服务器通信并获取一些数据。
我想在应用程序的主页上添加一些“等待窗口”,表明这种通信正在发生。我希望该窗口弹出,主页的其余部分将在后台淡出。
如果成功获取数据,此窗口将消失,然后可以正常使用。如果出现错误,或者无法建立与服务器的连接,我想提供 2 个选项:重试或关闭应用程序。
我的主要挑战是弹出窗口并使主页在后台淡出。任何想法如何做到这一点?
我有一个应用程序,它在启动时与我的服务器通信并获取一些数据。
我想在应用程序的主页上添加一些“等待窗口”,表明这种通信正在发生。我希望该窗口弹出,主页的其余部分将在后台淡出。
如果成功获取数据,此窗口将消失,然后可以正常使用。如果出现错误,或者无法建立与服务器的连接,我想提供 2 个选项:重试或关闭应用程序。
我的主要挑战是弹出窗口并使主页在后台淡出。任何想法如何做到这一点?
在执行 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;
}