2013-05-29 4 views
1

Я использую onActivityResult() и onPause() методов в одном действии. Теперь проблема в том, что всякий раз, когда onActivityResult() срабатывает, он вызывает onPause() в конце, и поэтому приложение приближается. Как предотвратить эту проблему? Код:onPause срабатывает непосредственно при вызове onActivityResult

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK 
      && null != data) { 
     Uri selectedImage = data.getData(); 
     String[] filePathColumn = { MediaStore.Images.Media.DATA }; 

     Cursor cursor = getContentResolver().query(selectedImage, 
       filePathColumn, null, null, null); 
     cursor.moveToFirst(); 

     int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
     picturePath = cursor.getString(columnIndex); 
     cursor.close(); 

     ImageView imageView = (ImageView) findViewById(R.id.imgView); 
     imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 
    } 
} 

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    finish(); 
} 
+0

и где код сэр? введите свой код здесь –

+0

проверить отредактированный пост. –

+2

почему вы называете финиш() внутри onPause = – Blackbelt

ответ

1

Пожалуйста, используйте логическую переменную и активировать его onActivityForResult метод.

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
if(!isActivate) 
    finish(); 
} 
+0

спасибо. Идея Гуда. Это сработало ! –

+0

@JeetenParmar, что сработало и как сработало .. можете ли вы объяснить ..? –

1

Почему вы звоните finish(); на onPause(). Удалите это.

@Override 
protected void onPause() { 
    // TODO Auto-generated method stub 
    super.onPause(); 
    //finish(); 
} 

При вызове finish() Вызывающий активность будет уничтожен, так что, когда называется активность завершает задачу ваше приложение закрывается, потому что нет никакой активности (больше), который будет обрабатывать результат.

Так просто удалитьfinish()

+0

извините, я новичок в разработке android. после загрузки изображения я собираюсь начать новую деятельность. Итак, если кто-то нажимает кнопку «Назад» на мобильном устройстве, то закрывает ли приложение? –

+0

есть. ваше приложение закроется. НО Только если текущая активность является последней в ActivityStack. –

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