1

Après avoir sélectionné une image et appelé onActivityResult, je crée une miniature pour mettre à jour la vue d'activité d'origine. Je redimensionne également l'image et la stocke dans un dossier temporaire d'où elle est ensuite récupérée par l'adaptateur de synchronisation à télécharger sur le serveur.Téléchargement d'image à l'aide de l'adaptateur de synchronisation via

Pour stocker la version réduite de l'image, j'utilise AsyncTask. Le problème est que la routine de stockage de fichiers est lente et peut prendre jusqu'à 10 secondes.

File pictureFile = getOutputMediaFile(); 
FileOutputStream fos = new FileOutputStream(pictureFile); 
bitmap.compress(Bitmap.CompressFormat.PNG, 90, fos); 
fos.close; 

Bien que l'image de stockage est en cours, il y a une forte chance que les utilisateurs peuvent cliquer pour télécharger l'image avant de la routine de stockage est fait. Donc, je dois soit trouver un moyen de continuer à réessayer l'action jusqu'à ce que le fichier image soit prêt, ou faire partie de routine de routine de l'interface utilisateur qui fera toujours attendre les utilisateurs, mais cette fois pour la vignette à apparaître.

Est-ce que quelqu'un a fait quelque chose de similaire? Existe-t-il des modèles pour gérer des situations similaires, etc.?

Répondre

0

J'ai fait quelque chose comme ça dans une de mes applications, vous pouvez sauvegarder l'image dans une tâche asynchrone et avoir un spinner de chargement (sur la barre d'action ou n'importe où) jusqu'à ce que le fichier soit sauvé

Et aussi au moment où la tâche asynchrone s'exécute et a terminé l'enregistrement du fichier, vous pouvez activer le bouton de téléchargement.

+0

Merci. C'est ce que j'ai en ce moment - je montre le fileur sur l'image en miniature. De cette façon, même si l'image miniature est affichée immédiatement, le curseur indique toujours aux utilisateurs qu'il y a quelque chose à attendre. – Aram