В моем приложении я хочу щелкнуть фотографию с камеры и хочу получить контент URI
из результата камеры onActivityResult()
.Camera Intent call onDestroy()
В моем приложении я получаю URL-адрес контента, используя метод ниже.
Uri currImageURI;
ArrayList<Uri> imageItems = new ArrayList<Uri>();
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
if((requestCode == SELECT_PICTURE_FROM_CAMERA && resultCode == RESULT_OK) || (requestCode == SELECT_PICTURE_FROM_LIB && resultCode == RESULT_OK)) {
currImageURI = data.getData();
imageItems.add(currImageURI);
Toast.makeText(UpdateMyServiceActivity.this, "Image added.", Toast.LENGTH_LONG).show();
}
}
Я добавил в URI ArrayList
(Поскольку пользователь может загрузить несколько изображений).
В моем приложении есть кнопка «Сохранить».
Когда пользователь нажимает кнопку «Сохранить», я передаю imageItems
на номер AsyncTask
для загрузки изображения на сервер.
Но вот проблема.
Когда пользователь нажимает кнопку «Сохранить», я получаю imageItems null.
Я отлаживаю свое приложение. После добавления URI в ArrayList вызывается методы Activity
.
onResume()
onPause()
onStop()
onDestroy()
onCreate()
onStart()
onResume()
Именно поэтому я получаю массивList null.
Как решить эту проблему?
Каждый раз, когда я получаю URI от намерения камеры. Пример URI: 'content: // media/external/images/media/8484' –
@ChiragSavsani: вы не получите один из устройств Nexus. И если вы прочтете документацию, 'ACTION_IMAGE_CAPTURE' не документируется, чтобы вернуть' Uri'. Не требуется, чтобы приложение камеры возвращало 'Uri'. – CommonsWare
Ох. Большое спасибо за указание на эту тему. Теперь я должен изменить свой код. Большое спасибо за информацию. –