<分区>
我有一个应用程序需要显示一些 PDF 文件。这些文件位于设备本地,并且该设备用于无法访问 Web 的高安全性位置。
在 Android 获得一些 native 功能或库来显示 PDF 文件之前,我依赖于 AdobeReader.apk,因此我将其启动:
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(dgfile), "application/pdf");
i.setClassName("com.adobe.reader", "com.adobe.reader.AdobeReader");
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
// ctx is a passed-in Context of my main Activity
try {
ctx.startActivity(i);
}
catch (ActivityNotFoundException e) { // incase no viewer installed
Log.e("DG_External", "No viewer found!");
}
这非常有效,但在我完成显示后我想停止它并返回到我的主应用程序。 this S.O question 上的“获胜”答案说如果我使用 StartActivityForresult() 我可以用 finishActivity() 但我无法让它工作(我不明白它是如何工作的因为没有我们要停止的 Activity 实例)
不过,我将 StartActivity 更改为:
((Activity)ctx).startActivityForResult(i, 33); //!! // 33 = arbitrary r.c.
这很好地调用了 Adobe 阅读器,但是做...
((Activity)ctx).finishActivity(33);
...没有产生任何结果。我尝试将它包装在 try/catch 中并且没有抛出任何异常。
我做错了什么,我该如何做对?提前致谢!