Pantalla en blanco al cerrar el PDF

Iniciado por MaX2, 30 Agosto 2021, 10:42 AM

0 Miembros y 1 Visitante están viendo este tema.

MaX2

Hola,
Como el amigo rub'n leerá este post, jeje, estoy probando a mostrar un PDF con un Intent, porque no consigo mostrarlo mediante alguna librería fiable, por fable quiero decir que lleve tiempo y tenga actualizaciones, y no que te deje fuera de juego a los dos años,.
La verdad que prefiero mostrar el pdf con una librea y no con un Intent, porque así el pdf se abre dentro de la aplicación, que es lo que intento.

El caso es que estoy mostrando un pdf con este código


Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
try {
    startActivity(intent);
} catch (ActivityNotFoundException e) {
}


El PDF se muestra sin problemas:


Pero cuando vuelves atrás para cerrar el pdf, muestra una ventana en blanco, cuando lo que debería de mostrar es el menú de la aplicación.



Como se puede solucionar esto para que no muestre la ventana en blanco ?

Gracias.



rub'n

Que hay.

Bueno por el api que usas para el pdf?

Como te había comentado en el anterior hilo que podía también continuar en ese.

El api IText funcióna muy bien

Con respecto a tu problema, seguro es más android que otra cosa, pero ahora mismo no sabría decirte Abría qje buscar.

Probaste quitando alguna de esas constantes en el

setFlags y addFlags?


rubn0x52.com KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen

MaX2

Si puedo en un rato lo pruebo y te cuento a ver si al quitar algo de setFlags y addFlags funciona.

Pero te digo que tengo los mismos Intent en otro sitio puesto, y no pasa eso, la única diferencia es que en el otro sitio, primero muestro en un listado el contenido de los PDFs que hay en Assest, y cuando muestro un PDF al volver atrás para cerrar el PDF se muestra el listado.

Y en este caso, no muestro un listado para seleccionar un archivo, si no que lo pongo en el enlace, y aquí al volver atrás se muestra la pantalla en blanco.


P.D. para no mezclar las respuestas ya que son temas diferentes, si quieres mejor te respondo en el otro post sobre la librería.


Salu2.

MaX2

Lo he probado dejando solo este código:


intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);


y sigue pasando lo mismo.  :-(


Salu2.

OndinaTirado

#4
¡Gracias por compartir! Yo tengo un problema muy similar a este, pero no sabía qué hacer. Al leer tu solución escrito como las muestras perfectas de https://ejemplius.com/  entendí que esto es lo que estaba buscando. ¡Lo probaré!

Danielㅤ

Hola Max, con respecto al problema de la pantalla en blanco al volver atrás, tal vez podrías usar un evento que se dispare cuando se presione la tecla de retroceder y de esa manera, cerrar la aplicación correctamente app.close();
Yo creo que el error es lógico, porque al cerrar el visor del PDF, quedaría la ventana frame, la ventana padre que es en ella donde se muestra el PDF y por eso al cerrar el PDF simplemente queda en blanco porque queda una ventana vacía.


Saludos
¡Regresando como cual Fenix! ~
Bomber Code © 2021 https://www.bombercode.net/foro/

Ayudas - Aportes - Tutoriales - Y mucho mas!!!

MaX2

Hola Daniel, no te voy a contradecir porque no entiendo mucho de android, solo hago unos pinitos para una aplicación personal, pero si fuese eso que dices, no pasaría lo mismo en el otro apartado donde también muestro otro pdf ?

La diferencia entre los dos, es que uno muestra directamente el archivo (copia el pdf de la carpeta Assests a la memoria externa y desde ahí lo abre ) este es el que deja la pantalla en blanco, y el otro muestra una lista con los pdf que hay en la carpeta Assets para escoger uno, y una vez abierto vuelve a mostar esa lista.

Cuando pulso la tecla para volver atras y cerrar el pdf, no quiero cerrar la aplicación, si no cerrar el pdf y que se muestre el menú, que es el que estaba antes de pulsa el botón de abrir el pdf


Salu2.


MaX2

He realizado una prueba y poner un archivo en la memoria externa y con el mismo código muestra el pdf y al pulsar la tecla atrás, vuelve al menú.

La diferencia entre este y el que muestra la pantalla en blanco, es que el otro esta en la carpeta Assets y lo copio a la memoria externa, y desde ahí lo abro, ósea que los dos los muestra desde la memoria externa, y uno deja la pantalla en blanco y el otro no.


Salu2.

MaX2

Vale compañeros, creo que ya esta solucionado, os cuento por si alguien mas tiene el mismo problema, la parte donde muestra la pantalla blanca al cerrar el pdf, extiende de FragmentActivity, la he cambiado por Fragment y ya no muestra la pantalla en blanco.

Claro que he tenido que cambiar algunos códigos porque mostraban errores, espero que estén bien, jeje.

Así que asunto solucionado, ahora toca ver lo de la librería para mostrar estos PDFs dentro de la aplicación, porque esta forma no me termina de convencer por algunos inconvenientes que tiene.


Salu2.