2015-05-07 6 views
9

Domanda semplice, ho impostato il codice per creare una bitmap di un'immagine e condividerla tramite Action_Send. Quando è condiviso, l'immagine corretta viene inviata, ma l'anteprima dell'immagine visualizzata nel campo del messaggio (se la stai inviando tramite testo) mostra un elemento precedentemente condiviso. C'è un modo per forzare l'anteprima di aggiornare? Di seguito un'immagine che mostra il campo di cui sto parlando. L'anteprima che c'è non è l'immagine attualmente condivisa, ma una precedente da molte condivisioni che non è mai stata cancellata.Immagine Condividi Android non cancella l'anteprima da un elemento precedentemente condiviso

http://i.stack.imgur.com/dT78Z.png

private Intent getShareIntent() 
{ 
Intent shareIntent = new Intent(Intent.ACTION_SEND); 
File sdCard = Environment.getExternalStorageDirectory(); 
File sharedFile = new File(sdCard+"/SaveDirectory/mypicture.png"); 
Uri uri = Uri.fromFile(sharedFile); 
shareIntent.setType("image/*"); 
shareIntent.putExtra(Intent.EXTRA_STREAM, uri); return shareIntent; 
} 
+0

pubblicare il tuo codice .. –

+0

getShareIntent Intent privato() { Intent shareIntent = new Intent (Intent.ACTION_SEND); File sdCard = Environment.getExternalStorageDirectory(); File sharedFile = new File (sdCard + "/ SaveDirectory/mypicture.png"); Uri uri = Uri.fromFile (sharedFile); shareIntent.setType ("image/*"); shareIntent.putExtra (Intent.EXTRA_STREAM, uri); return shareIntent; } scusa questo codice è così disordinato, sul cellulare – jagrakye

+0

ho corretto il codice, dovrebbe sembrare un po 'più bello ora. qualche idea? – jagrakye

risposta

4

vidi stesso problema. Questo problema esiste solo per alcune app, come le app di google come keep, g +, ecc.

Queste app mantengono l'anteprima se il file è lo stesso. Non sono sicuro del motivo per cui hanno fatto questa ipotesi. In breve, l'anteprima è preservata per file e non aggiornata anche dopo la modifica del file. Non possiamo aggiustare queste app, quindi la soluzione è evitare di aggiornare lo stesso file.

Creare un file temporaneo utilizzando File.createTempFile() che assicura che venga creato un nuovo file univoco. In questo modo l'anteprima verrà aggiornata.

Nel mio caso, ho creato questi file temporanei nella cache dir (getCacheDir() o getExternalCacheDir()) e deselezionare l'OnDestroy cache().

Problemi correlati