我有一个打开外部应用程序来读取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阅读器应用程序)回来时,在第一次点击我的后退按钮时,我得到一个黑屏,然后我可以到达我的活动?我怎么可能解决这个问题?
答案 0 :(得分:3)
我认为这可能是正常的活动生命周期。
一旦您的活动进入后台,操作系统就会认为它已不再重要,并且可能会杀死其进程以回收前台活动的内存或资源。按下后退按钮时看到的黑屏是应用程序主题的窗口背景,在重新创建活动并恢复其状态时显示。
这是正常行为。确保您的Activity通过实施适当的生命周期方法来有效地保存和恢复其状态,以减少重新创建所需的时间。
请参阅http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle