getFragmentManager null второй раз

Добрый день, я провожу недели программируя в Android и у меня есть некие проблемы с использованием getFragmentManager.

Я прочитал post о завершении активности и это - то, что я объяснил:

Упоминает ответ Стакк Овер Флов Инглес 1

Кроме того onDestroy () он не разрушитель. В действительности не разрушает объект одинокий метод, который вручает определенное состояние.

кроме этого:

Упоминает ответ Стакк Овер Флов Инглес 2

Считать тогда, что Ваше приложение будет в background, и потом умирает. Когда ты направишь Android, он будет помнить, что солитеры Fragments, например A, B и C и администратор воссоздавал их и потом добавлял их.

Я звоню в метод 2 раза из одной из моей активности, и второй раз (сделав один getActivity.finish(), воссоздавать активность и возвращаться в метод предыдущего фрагмента), указывает на меня в null.

Точка неудачи:

        private BroadcastReceiver estadoIAReceiver = new BroadcastReceiver() {
    //Cuando cambia el estado de indoor atlas actualizo la interfaz con sus propiedades
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.i("VFragment", "Cambio estado IA");

        //Ejecutar metodo de un fragment desde una actividad
        infoF = (InformacionFragment) getFragmentManager().findFragmentById(R.id.posicionamiento_layout); // <<--- AQUI!!!
        infoF.actualizaInfoEstadoIA();
        infoF.onResume();
    }
};

И infoF вот то, что он дает null

infoF = (InformacionFragment) getFragmentManager().findFragmentById(R.id.posicionamiento_layout);

Это возвращает меня null

Я был debuggeando app и отдых активности и fragments она правильна, а следовательно он не был бы должен обозначаться в null.

Мой вопрос:

С начитанным, я интуитивно чувствовал, что попробован указывать на старого fragment (1 выполненный раз), так как finish() действительно он не удаляет 100 % Activity (и я принимаю, что fragments также). Как он мог бы решать это?

1
задан 23.05.2017, 15:39
1 ответ

В конце концов resolvГ - моя проблема. Как кажется, сделав finish, () ты не разрушаешь полностью активность, но в savedInstanceState он сохраняет верная informaciГіn, и из-за этого, когда Fragment пробует указывать в, он возвращает null.

Она soluciГіn - следующий:

  • Так sГіlo верьте в новую такой изменчивый тип Bundle как глобальная переменная:

    Bundle datosGuardados;

  • , Чтобы хранить ее informaciГіn savedInstanceState

    datosGuardados = savedInstanceState;

  • И подтверди, что вышеупомянутая переменная не была null перед тем, как называть в getFragmentManager

    if (datosGuardados! = null) infoF = (InformacionFragment) getFragmentManager () .findFragmentById (R.id.posicionamiento_layout);

1
ответ дан 24.11.2019, 12:45