В нашем коде есть фрагмент, чтобы показать пользователю сгенерированный документ PDF:
public static final String PATH = FileUtils.buildPath(Environment.getExternalStorageDirectory().toString(), "temp.pdf"); // /sdcard/temp.pdf
// ...
File file = new File(PDFPrinter.PATH);
if(file.exists() == true){
Uri uri = Uri.fromFile(file);
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setDataAndType(uri, "application/pdf");
pdfIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getContext().startActivity(pdfIntent);
}
Но он не работает должным образом с обычным средством просмотра PDF Drive, иногда он не открывает вновь созданную версию документа,но показывает пользователю предыдущий.Почему это произошло?
Я нашел исправление, чтобы добавить еще один флаг
pdfIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
pdfIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //+
, но я не могу понять, почему это работает?