I have this code to pick the images from gallery or camera:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case SELECT_PICTURE_ACTIVITY_REQUEST_CODE:
if (resultCode == RESULT_OK) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA,
MediaStore.Images.Media.DISPLAY_NAME };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
if (cursor.moveToFirst()) {
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
ext = filePath
.substring(filePath.lastIndexOf(".") + 1);
photod = BitmapFactory.decodeFile(filePath);
new AsyncTaskOne().execute(new String[] {});
(fileNameIndex);
}
}
break;
case SELECT_CAMERA_ACTIVITY_REQUEST_CODE:
if (requestCode == CAMERA_REQUEST) {
photod = (Bitmap) data.getExtras().get("data");
new AsyncTaskOne().execute(new String[] {});
}
}
}
When I press the confirm button I invoke this listener
OnClickListener confirm = new OnClickListener() {
public void onClick(View v) {
Intent i = new Intent("com.striget.eu.UpdatePhoto");
i.putExtra(PropertiesUpdatedPhoto.EXTRA_PHOTO, codedPhoto);
i.putExtra(PropertiesUpdatedPhoto.EXTRA_EXT, ext);
startActivity(i);
}
};
(where codedPhoto is the image coded in base64 by another method) to send the image and its extension in another activity
Everything works fine with small images but if I chose a medium size image or large photo(also if isn't very large), the app freezes, the screen becomes black and If I wait some minutes return on the current activity without showing any error in the stack and the invoked intent PropertiesUpdatedPhoto doesn't start.
How I could fix this problem?