2015-05-28 2 views
0

Когда я делаю снимок с камерой в своем приложении, приложение/действие перезапускается (и все остальные действия также закрыты), когда я сохраняю фотографию, которую я взял. Также, когда я отлаживаю приложение, отладчик отключается после съемки.Android ACTION_IMAGE_CAPTURE перезапускает приложение

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

File file = getOutputMediaFile(1); 
picUri = Uri.fromFile(file); 
i.putExtra(MediaStore.EXTRA_OUTPUT, picUri); 

startActivityForResult(i, 0); 

Мой onActivityResult:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 
    if (resultCode == Activity.RESULT_OK) { 
     switch (requestCode) { 
      case 0: 
       mProgress.show(); 
       loadCameraImage(); 
       break; 

      case 1: 
       mProgress.show(); 
       Uri uri = imageReturnedIntent.getData(); 
       loadFileImage(uri); 
       break; 
     } 
    } 
} 

ответ

2

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

+0

Как я могу убедиться, что этого не происходит. Когда я работал над этим вчера, приложение не перезапускалось. –

+0

@BartBergmans: «Как я могу убедиться, что этого не происходит» - вы не можете. Опять же, это совершенно нормальное поведение. Если ваше приложение не обрабатывает этот случай, вам нужно исправить свое приложение. «Когда я вчера работал над этим, приложение не перезапустилось» - какой процесс (ы) аннулирует для освобождения оперативной памяти системы, зависит от того, какие процессы существуют и какие состояния. В этом случае приложение камеры, которое вы используете, возможно, требует большой кучи, заставляя Android более агрессивно прекращать другие процессы, чтобы справляться с потребностями приложения камеры. – CommonsWare

+0

Но я использую код из http://stackoverflow.com/questions/16026818/actionbar-custom-view-with-centered-imageview-action-items-on-sides (верхний ответ), чтобы нарисовать мой ActionBar, поэтому, если приложение перезапускает действие, выглядит некрасиво, пока панель действий не будет снова нарисована. –

Смежные вопросы