0

Я хочу установить изображение своего профиля с помощью камеры, но мой Activity иногда убивают, когда startActivityForResult с ACTION_IMAGE_CAPTURE.Android-камера намерена убить мою деятельность

камера успешно работает, я снимаю.

но когда я нажимаю кнопку сохранения после съемки, иногда моя активность перезапускается.

Как я могу решить эту проблему? Пожалуйста, помогите мне!

Вот мой код:

i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, 
      Uri.fromFile(new File(getExternalFilesDir(null).getPath() + "/profile.png"))); 

startActivityForResult(i, which); 

Спасибо.

+0

можете ли вы разместить свой логарифм? –

+0

Что означает «убитый»? –

+0

это называется onDestroy(). – fullyfish

ответ

0

Причина, по которой ваша деятельность уничтожается и воссоздается, вероятно, из-за изменения ориентации; ваше приложение работает на портрете, но камера находится в ландшафте. Возвращаясь к своей деятельности, она сначала возвращается в пейзаж и воссоздает себя в портрете (или что-то в этом роде).

Вы должны по-прежнему получать ответ на startActivityForResult(), так просто обработать ответ в onActivityResult(), сохранить намерение в onSaveInstanceState(), и извлечь его снова в onCreate() с деятельностью воссоздана.

+0

См. также [этот связанный вопрос] (http://stackoverflow.com/questions/5279809/trouble-working-with-the-camera-in-onactivityresult?rq=1). –

-1

просто позвоните по телефону() в onActivityResult. Поэтому всякий раз, когда завершается действие камеры, ваша деятельность будет возобновлена.

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 
    bitmapImage = (Bitmap) data.getExtras().get("data"); 
    onResume(); 
    } 
+1

Не вызывайте методы жизненного цикла активности самостоятельно –