0

我有一个应用程序可以打开一个外部应用程序来阅读 PDF 文件。这是打开外部应用程序的代码。

        if(file!=null){
            PackageManager packageManager = getPackageManager();
            Intent testIntent = new Intent(Intent.ACTION_VIEW);
            testIntent.setType("application/pdf");
            List list = packageManager.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY);
            if (list.size() > 0 && file.isFile()) {
                Intent intent = new Intent();
                intent.setAction(Intent.ACTION_VIEW);
                Uri uri = Uri.fromFile(file);
                intent.setDataAndType(uri, "application/pdf");

                startActivity(intent);
            }else{
            Toast.makeText(this, "problem loading file", Toast.LENGTH_LONG).show();
        }
        }

问题是当我从我的 pdf 应用程序(adobe 阅读器或任何 pdf 阅读器应用程序)返回时,在第一次单击我的后退按钮时我得到一个黑屏,然后我可以进入我的活动?我怎么可能解决这个问题?

4

1 回答 1

3

我认为这可能是工作中正常的 Activity 生命周期。

一旦您的 Activity 进入后台,操作系统就会认为它不再重要,并且它的进程可能会被终止,以便为前台 Activity 回收内存或资源。按下后退按钮时看到的黑屏是应用程序主题的窗口背景,在重新创建 Activity 并恢复其状态时出现。

这是正常行为。通过实施适当的生命周期方法以减少重新创建所需的时间,确保您的 Activity 有效地保存和恢复其状态。

请参阅http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

于 2012-01-25T12:17:29.890 回答