Android 从外部pdf读取器返回时未调用onActivityResult()
我正在从以下代码启动pdf阅读器:Android 从外部pdf读取器返回时未调用onActivityResult(),android,pdf,Android,Pdf,我正在从以下代码启动pdf阅读器: public static final int MY_INTENT_FLAG = 1; String documentName = "filename.pdf"; File file = new File(getFilesDir(), documentName); if (file != null && file.exists()) { Uri filePathUri = Uri.fromFile(file); Intent int
public static final int MY_INTENT_FLAG = 1;
String documentName = "filename.pdf";
File file = new File(getFilesDir(), documentName);
if (file != null && file.exists()) {
Uri filePathUri = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(filePathUri, "application/pdf");
try {
startActivityForResult(intent,MY_INTENT_FLAG);
} catch (ActivityNotFoundException e) {...}
}
打开文档并阅读它可以正常工作。但是,当我在pdf阅读器中按back按钮时,不会调用onActivityResult()。为什么会这样?这可能仅仅是因为特定的pdf阅读器在完成时没有设置结果代码吗?我的设备上有Acrobat Reader
我想知道我什么时候从外部活动返回,这样在这种情况下用户就不需要再次登录
谢谢你的意见
为什么会这样?这是否仅仅是因为特定的pdf阅读器确实如此
完成时未设置结果代码?我的电脑上有Acrobat Reader
装置
是的,通常情况就是这样
对于要传回的结果,子活动需要先调用,然后再调用。如果没有,则“结果”不会传播回父活动。您可以获得一个
onActivityResult()
方法,但您无法从子活动获取结果,因为它不是通过setResult()返回结果。
你告诉你检查登录,所以你有其他方法来检查登录
例如
您可以将用户名和密码保存到首选项
,并从中读取登录详细信息
如果其中有详细信息,则用户为登录用户,如果没有,则您可以向用户弹出登录屏幕。您可能希望查看此问题中的公认答案:是否无法监控此问题?如果您以某种方式获得通过startActivityForResult()启动的活动的句柄,您可能可以使用isFinishing()在后台线程中监视它的状态。这对我很有用。然而,当它不工作时,我发现了一种情况:当打开pdf阅读器时,手机上会出现一个复选框“用作此操作的标准”。如果选中此项,则在第二次打开pdf阅读器时(以及之后的所有时间)它都不起作用。