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 に答える