Активность прерывается при выполнении намерения камеры

[EDIT: Проблема решена. Пожалуйста, смотрите мой ответ ниже.]

В моем приложении я вызываю системную камеру, чтобы сделать снимок, а затем обрабатываю результат в onActivityResult. Вы знаете, обычное. Раньше это работало, но теперь моя активность по звонкам прерывается, пока я делаю снимок. В частности, onDestroy()вызывается в моей активности сразу после того, как я нажимаю кнопку спуска затвора камеры. Фотография делается и сохраняется (я проверил, что файл записывается на SD-карту). После того, как я принимаю фотографию, вместо возврата к вызывающей активности и вызова onActivityResultвызывается предыдущая активность в стеке активности. Я не вижу исключений в logcat. Мой пользовательский обработчик исключений не вызывается. Если это имеет значение, мое приложение также включает службу, которая прослушивает обновления GPS, но я отменяю регистрацию всех приемников в onPause().

Вот стек вызовов для MyCallingActivity.onDestroy():

Thread [<1> main] (Suspended (breakpoint at line 303 in NewPlaceDetailsActivity))   
    NewPlaceDetailsActivity.onDestroy() line: 303   
    ActivityThread.performDestroyActivity(IBinder, boolean, int, boolean) line: 2663    
    ActivityThread.handleDestroyActivity(IBinder, boolean, int, boolean) line: 2694 
    ActivityThread.access$2100(ActivityThread, IBinder, boolean, int, boolean) line: 117    
    BinderProxy(ActivityThread$H).handleMessage(Message) line: 968  
    ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
    Looper.loop() line: 130 
    ActivityThread.main(String[]) line: 3687    
    Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
    Method.invoke(Object, Object...) line: 507  
    ZygoteInit$MethodAndArgsCaller.run() line: 842  
    ZygoteInit.main(String[]) line: 600 
    NativeStart.main(String[]) line: not available [native method]  

Вот как я запускаю действие камеры, если вам интересно:

protected void startCamera() {
    createPhotoDirsIfNeeded();

    String fileName = "temp.jpg";  
    ContentValues values = new ContentValues();  
    values.put(MediaStore.Images.Media.TITLE, fileName);  
    m_capturedImageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);  

    m_photoFileName = APP_PHOTO_PATH + "/" + DateFormat.format(DATE_FORMAT, Calendar.getInstance().getTime()) + ".jpg";
    File picFile = new File(m_photoFileName);
    if(picFile.exists()) {
        picFile.delete();
    }

    // start the camera activity
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT,  Uri.fromFile(picFile));
    startActivityForResult(intent, IntentHelper.REQUEST_TAKE_PHOTO);
}

Как узнать, почему мой активность уничтожается И удаляется из стека, а не создается снова?

5
задан Macondo2Seattle 21 March 2012 в 17:08
поделиться