从外部应用程序返回时出现黑屏

时间:2012-01-25 11:58:18

标签: android android-activity android-package-managers

我有一个打开外部应用程序来读取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 reader或任何pdf阅读器应用程序)回来时,在第一次点击我的后退按钮时,我得到一个黑屏,然后我可以到达我的活动?我怎么可能解决这个问题?

1 个答案:

答案 0 :(得分:3)

我认为这可能是正常的活动生命周期。

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

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

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