0

AsyncTask の doInBackground メソッドにこのコードがあります。

    for (int i = 0; i < lenght; i++) {
        // Do something

        count++;
        publishProgress(count * 100 / lenght);
    }

すべて正常に動作します。別の操作を追加した場合、これをプログレス バーに反映するにはどうすればよいですか?

今、私はこのコードを持っています:

    for (int i = 0; i < lenght1; i++) {
        // Do something

        count++;
        publishProgress(count * 100 / lenght1);
    }

    for (int i = 0; i < lenght2; i++) {
        // Do something 

        count++;
        publishProgress(count * 100 / lenght2);
    }

操作 1 の開始時にバーを 0 から開始し、操作 2 の終了時にバーを 100 で終了させるにはどうすればよいですか? count*100 を count*50 に変更しようとしましたが、正しい方法ではないようです...

4

1 に答える 1

1

長さ 1 と長さ 2 を含む算術式を見つけて、それに応じて進行状況を公開します。

たとえば、カウントの各増加に同じ重みを与えたい場合、100% はカウント == 長さ 1 + 長さ 2 を意味し、次のようなものを使用できます。publishProgress(count * 100 / (length1+length2));

于 2014-08-20T17:55:49.950 に答える