从getter方法获取数据,而不是传入Bundle

时间:2017-08-17 12:16:55

标签: java android bundle

我需要将一些Bitmaps从一个活动传递到另一个活动,并且,由于Bundle的大小限制不允许我传递这些图像(即使使用字节数组*),我认为我可以使用getter方法这些活动之间。

- 但是,因为我还不是Android(Java)的主人,我不知道这是否会产生任何影响,如果确实如此,应该是什么我注意使用它。

字节数组确实减少了总大小(约为60%),但仍然不够

按比例缩小是一种解决方法,但万一其他任何解决方案都可以使用

3 个答案:

答案 0 :(得分:0)

通过在POJO类中编写getter方法来传递Uri

答案 1 :(得分:0)

将对象保存在文件中

    private void saveDataToFile() {

FileOutputStream fileOutputStream = null;
try {
    fileOutputStream = getContext().openFileOutput("fileName", Context.MODE_PRIVATE);
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (NullPointerException e) {

}
ObjectOutputStream objectOutputStream = null;
try {
    objectOutputStream = new ObjectOutputStream(fileOutputStream);
} catch (IOException e) {
    e.printStackTrace();
} catch (NullPointerException e) {

}
try {
    if (objectOutputStream != null) {
        objectOutputStream.writeObject(yourObject); //which data u want to save
    }
} catch (IOException e) {
    e.printStackTrace();
}
try {
    if (objectOutputStream != null) {
        objectOutputStream.close();
    }
} catch (IOException e) {
    e.printStackTrace();
}

}

从另一个活动中检索对象

private void getDataFromFile() {

FileInputStream fileInputStream = null;
try {
    fileInputStream = getContext().openFileInput("fileName");
} catch (FileNotFoundException e) {
    e.printStackTrace();
    return;
}
ObjectInputStream objectInputStream = null;
try {
    objectInputStream = new ObjectInputStream(fileInputStream);
} catch (IOException |NullPointerException e) {
    e.printStackTrace();
}
try {
    yourObject = (ObjectClass) objectInputStream.readObject();
} catch (IOException e) {
    e.printStackTrace();
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}
try {
    objectInputStream.close();
} catch (IOException e) {
    e.printStackTrace();
}

}

答案 2 :(得分:0)

如果你想使用getter setter,只需创建位图的URI并传递给POJO类中的setter方法,然后使用POJO类的getter方法进行检索。