2016-11-08 11 views
0

Я разрабатываю приложение, которое содержит несколько фрагментов, представляющих разные экраны. Один из фрагментов представляет экран редактирования профиля, где пользователь может изменить свой профиль. Одним из вариантов изменения изображения является выбор изображения из галереи. Для этого я использую намерение открыть галерею.Как получить изображение из галереи после того, как приложение будет убито?

action_chose_btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
      intent.setType("image/*"); 
      // Always show the chooser (if there are multiple options available) 
      startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST); 
     } 
    }); 

После того, как я открыть галерею, мое приложение идет на фоне, а затем разрушается из-за нехватки памяти на моем телефоне. Это намерение отправляется из фрагмента профиля редактирования. Чтобы сохранить состояние приложения, я сохраняю строку, представляющую определенный фрагмент в Bunble, внутри операции onSaveInstanceState(). Когда активность воссоздана, я проверяю пакет в методе onPostCreate() и добавляю правый фрагмент к активности.

@Override 
protected void onPostCreate(Bundle savedInstanceState) { 
    Log.i(TAG, "On post create"); 

     if (savedInstanceState.getInt(FRAGMENT_STATE)== MY_STATUS){ 
      state = MY_STATUS; 
      displayMyStatus(); 
      footer.setSelected(MY_STATUS); 
      footer.displayButtons(); 
     }else if(savedInstanceState.getInt(FRAGMENT_STATE)== TEAM_STATUS){ 
      state = TEAM_STATUS; 
      displayTeamStatus(); 
      footer.setSelected(TEAM_STATUS); 
      footer.displayButtons(); 
     }else if(savedInstanceState.getInt(FRAGMENT_STATE)== MY_PROFILE){ 
      state = MY_PROFILE; 
      displayMyProfile(); 
      footer.setSelected(MY_PROFILE); 
      footer.displayButtons(); 
     }else if(savedInstanceState.getInt(FRAGMENT_STATE)== EDIT_PROFILE){ 
      state = EDIT_PROFILE; 
      displayEditMyProfile(); 
      footer.setSelected(MY_PROFILE); 
      footer.displayButtons(); 
     } 
    super.onPostCreate(savedInstanceState); 
} 

Когда я открываю галерею, моя деятельность разрушается из-за нехватки памяти на моем устройстве. Когда я выбрал изображение из галереи, моя деятельность воссоздается, и я добавляю правый фрагмент, как я описал выше. Однако я не уверен, что происходит во время активного отдыха с результатом, который я получаю от галереи.

Я пробовал onActivityResult() методов, однако он не срабатывает. Я предполагаю, что он должен быть вызван в том же самом фрагменте, из которого было отправлено намерение в галерею.

Мой вопрос будет:

Что происходит с изображением, которое было запрошено из галереи и как я должен получить его в деятельности, воссозданной? Где я могу найти изображение, выбранное из галереи?

ответ

0

Решенная проблема, перемещая галерею в соответствии с классом деятельности. Затем запускается метод onActivityResult().