0

我希望这很简单,但我对发生的事情感到相当困惑。我正在使用从我的应用程序的其他地方复制的一段代码从 Android 活动中的 Imagebutton 启动 PDF。

if (v==imagebutton20) {

                File file = new File("/sdcard/documents/20.pdf");
                  if (file.exists()) {
                        Uri path = Uri.fromFile(file);
                        Intent intent = new Intent(Intent.ACTION_VIEW);
                        intent.setDataAndType(path, "application/pdf");
                        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

                        try {
                            startActivity(intent);
                            overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
                        } 
                        catch (ActivityNotFoundException e) {

                        }
                  }
            }   //end of   load

pdf 加载正常,但是当我按下启动 pdf 的活动时,它不会显示,而是返回到之前的活动。我试过注释掉

     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

但同样的效果。我错过了什么?抱歉,我无法理解官方的 android 指南,一定是度过了充实的一天!


当我检查了清单文件时,更加困惑的是活动(大脑)的 .xml,但每次我使用上面的代码加载 pdf 时,我都会回到我的应用程序中的错误活动(主要)。我通过图像视图从 Main 调用 Brain 活动,但效果很好。当我从 Brain 启动上面的 PDF 时,后退按钮将我带到 Main 而不是启动活动 Brain。

我在我的应用程序的其他 2 个活动中的其他地方使用了上面的代码,并且后退键的行为与您想要/期望的完全一样。这就是为什么我开始检查 mainfest 文件,但不知道我缺少什么。

任何帮助都会是王牌!

谢谢。

4

1 回答 1

0

我无法解释为什么以下工作,但如果其他人有类似的问题,我通过以下方式解决了这个问题:

  • 在 Eclipse 中创建一个新的 Android 活动。
  • 从行为不端的活动中复制代码。
  • 将代码粘贴到新创建的活动中。

很简单,不确定为什么会起作用,但确实如此。

于 2013-07-21T19:38:23.437 回答