1

新しいプログラマー。一番下に質問。

車両に対応するフリートの配列があります。フリート配列の各スロットでサーバーを連続して呼び出したいと考えています。

これを AsyncTask で実行したいと考えています。

private class refreshTruckInformation extends AsyncTask<URL, Void, Void> {


            @Override
        protected void doInBackground(URL... urls) {

        }

        @Override
        protected void onProgressUpdate(Integer... progress) {

        }

        @Override
        protected void onPostExecute(Void... voids) {

        }
    }

** フリートの配列を渡して doInBackground で使用できるようにするにはどうすればよいですか?

また、通過したフリートのパーセンテージに基づいて進む進行状況バーも必要です。これを行う良い方法は何ですか?**

ありがとう!

4

1 に答える 1

2

** フリートの配列を渡して doInBackground で使用できるようにするにはどうすればよいですか?

refreshTruckInformation はまだクラスであることを思い出してください。そのため、任意のコンストラクターまたは settier メソッドを使用して配列を渡すことができます。

また、通過したフリートのパーセンテージに基づいて進む進行状況バーも必要です。これを行う良い方法は何ですか?**

doInBackground メソッドから、メソッドを使用して進行状況を公開できますpublishProgress。この進捗パラメータはonProgressUpdateメソッドでキャッチされます

例えば

private class RefreshTruckInformation extends AsyncTask<URL, Void, Void> {

        private int[] b;
        public RefreshTruckInformation (int[] a){
             // use array
             b = a;
        }

        public void setArray(int[] a){
             // use array
             b = a;
        }

            @Override
        protected void doInBackground(URL... urls) {

        }

        @Override
        protected void onProgressUpdate(Integer... progress) {

        }

        @Override
        protected void onPostExecute(Void... voids) {

        }
    }

そして、を使用して呼び出します

RefreshTruckInformation r = new RefreshTruckInformation (yourArray);

または次のようなメソッドを呼び出します

r.setArray(yourArray);

そして次のように実行します

r.execute();
于 2013-06-24T15:20:33.000 に答える