Как отправить большие байтовые массивы между действиями в Android?
Мне нужно отправитьbyte[] data
отActivity1
вActivity2
, чтобы написатьdata("FileOutputStream.write(data)")
в файле JPG. Мой окончательный файл .jpg может превышать 1 МБ.
Activity1:
public void onPictureTaken(byte[] data, Camera camera) {
Log.w("ImageSizeMyApp", String.valueOf(data.length));
mCamera.startPreview();
Intent shareWindow = new Intent(Activity1.this, Activity2.class);
shareWindow.putExtra("photo",data);
startActivity(shareWindow);
closeCamera();
Log.w("CameraActivity:", "onPictureTaken");
}
В Деятельности2:
Bundle extras = getIntent().getExtras();
data = extras.getByteArray("photo");
я используюLog.w("ImageSizeMyApp", String.valueOf(data.length));
чтобы получить это:
ImageSizeMyApp 6 446367 (этот размер отправляет на следующую активность, и все хорошо)
ImageSizeMyApp 77 577368 (этот размер закрывает мою камеру и не отправляет на следующее действие)
Таким образом, 500kb - это предельное измерение для Intent. Есть ли другой стабильный способ отправить мойbyte[]
больше чем 500kb между действиями?
Любые ссылки или советы приветствуются. Заранее спасибо!
Обновить:
Могу ли я создать другой класс для хранения этого массива byte []? Или лучше использовать статическую переменную?