さまざまな for ループを使用して、いくつかの png ファイルをダウンロードしようとしています。私の場合、publishProgress() メソッドをどのように正確に使用すればよいですか?
ここに私のコードがあります:
protected String doInBackground(String... params) {
for(PlaceDetails place : places){
for(int v = 14; v <=16; v++){
for (int y = 0; y <= placeBottomLeft.getYTile(); y++){
for(int x = placeTopLeft.getXTile(); x <= placeBottomRight.getXTile(); x++){
try {
//Download some stuff here
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
for (int w = zoom -1 ; w <= zoom+1; w++){
for (int y = topLeft.getYTile(); y <= bottomLeft.getYTile(); y++){
for(int x = topLeft.getXTile(); x <= bottomRight.getXTile(); x++){
try {
//Download some stuff here again
} catch (Exception e) {
Log.e("URL::: ERROR", e.getMessage());
e.printStackTrace();
}
}
}
}
return null;
}
ご覧のとおり、doInBackground メソッドの 2 つの個別の for ループでコンテンツをダウンロードしようとしています。ただし、私が見た例のほとんどは、スレッドをスリープさせ、for ループ カウンター番号を publishProgress() メソッドの整数として使用するだけです。この場合、どのように使用すればよいですか?ありがとう!
編集:
さらに明確にするために、進行状況を更新して onPostExecuteMethod() で行われたことを含めることができるかどうかを知りたいです。
protected void onPostExecute (String result){
File newFileDir = new File(Environment.getExternalStorageDirectory().toString() + "/Qiito Offline/offlineMap");
File fileDir = new File(Environment.getExternalStorageDirectory().toString()
+ "/test");
try {
Log.e("Starting :: ", newFileDir.getPath());
File newFile = new File(newFileDir, "" + tID + ".zip");
newFileDir.mkdirs();
OutputStream output = new FileOutputStream(newFile);
ZipOutputStream zipoutput = new ZipOutputStream(output);
zip(fileDir, fileDir, zipoutput);
zipoutput.close();
output.close();
deleteDirectory(fileDir);
mNotificationHelper.completed(); //method I used for my NotificationHelper to inform that the entire process is completed
} catch (IOException excep) {
Log.e("ERROR!!" , excep.getLocalizedMessage());
}
}
postExecute() で、png ファイルを別のフォルダーに圧縮しようとしており、その後、すべての png ファイルを削除しています。プログレスバーにもこれを含めることができますか? それ以外の場合は、png ファイルのダウンロードを追跡するだけで済みます。