черный экран появляется при возврате из внешнего приложения - PullRequest
0 голосов
/ 25 января 2012

У меня есть приложение, которое открывает внешнее приложение для чтения файлов 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 Reader), при первом нажатии моей кнопки «Назад» я получаю черный экран, а через секунду я могу достичь своей активности? Как я мог решить эту проблему?

1 Ответ

3 голосов
/ 25 января 2012

Я думаю, что это, вероятно, нормальный жизненный цикл активности на работе.

Как только ваша активность переходит в фоновый режим, ОС больше не считает ее критичной, и ее процесс может быть прерван, чтобы освободить память или ресурсы для основной деятельности. Черный экран, который вы видите при нажатии кнопки «Назад», является фоном окна темы вашего приложения, которое появляется, когда ваша активность воссоздается и восстанавливается ее состояние.

Это нормальное поведение. Убедитесь, что ваша активность эффективно сохраняет и восстанавливает свое состояние, применяя соответствующие методы жизненного цикла, чтобы сократить время, необходимое для воссоздания.

См. http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

...