Wie werden große Byte-Arrays zwischen Aktivitäten in Android gesendet?
Ich muss sendenbyte[] data
vonActivity1
zuActivity2
, um @ zu schreibdata("FileOutputStream.write(data)")
in einer JPG-Datei. Meine endgültige JPG-Datei könnte 1 MB überschreiten.
Aktivität 1
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");
}
In Aktivität2:
Bundle extras = getIntent().getExtras();
data = extras.getByteArray("photo");
Ich benutzeLog.w("ImageSizeMyApp", String.valueOf(data.length));
um dies zu bekommen:
ImageSizeMyApp ﹕ 446367 (diese Größe wird an die nächste Aktivität gesendet und alles ist gut)
ImageSizeMyApp ﹕ 577368 (diese Größe schließt meine Kamera und sendet nicht an die nächste Aktivität)
So 500kb ist die Grenzdimension für Intent. Gibt es eine andere stabile Methode, um mein @ zu sendebyte[]
größer als 500kb zwischen Aktivitäten?
Jede Referenz oder Beratung ist willkommen. Danke im Voraus
Aktualisieren
Kann ich eine andere Klasse zum Speichern dieses byte [] -Arrays erstellen? Oder ist es besser, eine statische Variable zu verwenden?