Dans mon application, le système télécharge les images à partir d'une adresse URL et les enregistre dans la mémoire du téléphone. (Je n'ai pas inclus l'adresse URL dans la question) En plus de cela, il va également enregistrer des données dans la base de données sqlite. Les données sauvegardées sont le nom du fichier, le chemin du fichier et la taille du fichier. Mais actuellement, une fois que je passe par le processus de téléchargement si le téléchargement complet ou échouent au milieu du processus, il va également insérer dans la base de données.
Est-il possible de vérifier si le processus de téléchargement est terminé ou non?Comment vérifier si le processus de téléchargement de l'image est terminé ou non?
GalleryScreen.this.runOnUiThread(new Runnable() {
@Override
public void run() {
boolean isDownloadResult = false;
int NumIncrease = 0;
Log.i(TAG, "NumberIncrease:" +NumIncrease);
Toast.makeText(getApplicationContext(), "Downloading.............>>>>>>>>>>>", Toast.LENGTH_SHORT).show();
Bitmap bm;
InputStream in;
try{
in = new java.net.URL(URL).openStream();
bm = BitmapFactory.decodeStream(new PatchInputStream(in));
File storage = new File(Environment.getExternalStorageDirectory() + File.separator + "/Images/");
Log.i(TAG,"storage:" +storage);
Log.i(TAG,"storage:" +storage.getAbsolutePath());
if(!storage.exists()){
storage.mkdirs();
}
String FileName = "/"+CONTENT_ID+".jpg";
FileOutputStream fos = new FileOutputStream(storage + FileName);
bm.compress(Bitmap.CompressFormat.JPEG, 85, fos);
String filepath = storage + FileName;
File filecheck = new File (filepath);
long fileSize = filecheck.length();
fos.flush();
fos.close();
Log.i(TAG, "bm:" +bm);
Log.i(TAG, "fos:" +fos);
Log.i(TAG, "filesize:" +fileSize);
Log.i(TAG, "filepath:" +filepath);
helper.insert_content(filepath, fileSize, requestTime);
isDownload = false;
}
catch(IOException e1){
e1.printStackTrace();
}
}
});
Si vous utilisez AsyncTask alors vous pouvez vérifier que si elle est en cours d'exécution ou non – rajpara