как избежать startActivityForResult при нажатии кнопки «Назад» в приложении для Android

в моем приложении при нажатии кнопки открывается камера для захвата изображения. код камеры такой...

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
             file = new File(Environment.getExternalStorageDirectory(),  String.valueOf(System.currentTimeMillis()) + ".jpg"); 
             Log.e("ffffffffffiiiiiiiiilllllllllle ",""+file);
             f = String.valueOf(file);
             mCapturedImageURI = Uri.fromFile(file);
             Log.e("outputFileUri ",""+mCapturedImageURI);
             setupImage(intent);
             intent.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI); 
             startActivityForResult(intent, 3);

в результате начала действия я показываю окно предупреждения с двумя кнопками. Если нажать кнопку 1, изображение будет загружено на URL-адрес, а если нажать кнопку 2, оно будет загружено на другой URL-адрес.

Теперь проблема заключается в том, что если камера открывается, а изображение не захватывается, чтобы вернуться к предыдущему действию, пользователь использует кнопку «Назад», и к этому времени также появляется окно предупреждения. Либо пользователь нажимает кнопку 1 или кнопку 2, приложение аварийно завершает работу.

Как избежать окна предупреждения при нажатии кнопки «Назад» без захвата изображения.


person Siva K    schedule 16.09.2011    source источник
comment
Где вы пишете код для Alert Box? Можете ли вы опубликовать код OnActivityforresult?   -  person Venky    schedule 16.09.2011


Ответы (3)


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

public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    if(resultCode == Activity.RESULT_OK )
    {
        if(requestCode == CAMERA_ACTIVITY)
        //PROCESS YOUR LOGIC
    }

}
person Adil Soomro    schedule 16.09.2011

Вы получите RESULT_CANCELED в onActivityResult() вызывающего Activity, когда вернется нажал.

person PravinCG    schedule 16.09.2011

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

person Mohammed Azharuddin Shaikh    schedule 16.09.2011