从外部pdf阅读器返回时未调用onActivityResult()

时间:2011-07-22 13:02:48

标签: 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 intent = new Intent(Intent.ACTION_VIEW);
   intent.setDataAndType(filePathUri, "application/pdf");

   try {
      startActivityForResult(intent,MY_INTENT_FLAG);
   } catch (ActivityNotFoundException e) {...}
}

打开文档并阅读它可以正常工作。但是,当我按下pdf阅读器上的后退按钮时,不会调用onActivityResult()。为什么是这样?可以简单地说因为特定的PDF阅读器在完成时没有设置结果代码吗?我的设备上有Acrobat Reader。

我想知道何时从外部活动回来,以便用户在这种情况下不需要再次登录。

感谢您提供任何意见

2 个答案:

答案 0 :(得分:0)

  

这是为什么?它可以简单地因为特定的pdf阅读器   完成后没有设置结果代码?我有Acrobat Reader   设备

是的,通常就是这种情况。

要传回的结果,子活动需要先调用setResult(),然后调用finish()。如果不是,则“结果”不会传播回父活动。

答案 1 :(得分:0)

您可以获得onActivityResult()方法,但无法从子活动中获取结果,因为它不会按setResult()

返回结果

并且您告诉您登录检查,以便您有其他方法来检查登录

例如

您可以将用户名和密码保存到preference,然后您可以从中读取登录详细信息 如果其中存在详细信息,则用户登录,如果没有,则可以将登录屏幕弹出到用户。