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?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage