代码之家  ›  专栏  ›  技术社区  ›  Abdul Wasae

将ProtoBuf对象存储在SharedReferences中

  •  3
  • Abdul Wasae  · 技术社区  · 8 年前

    我想存储一个 ProtoBuf SharedPreferences . Protocol Buffers ByteString Byte Array 但是 共享引用

    InvalidProtocolBufferException :

    public static void setProtoData(ProtoData data) {
        Prefs.putString(Constants.SHARED_PREF_PROTO_DATA, String.valueOf(data.toByteString()));
    }
    
    public static ProtoData getProtoData() {
        String str = Prefs.getString(Constants.SHARED_PREF_PROTO_DATA, null);
        ProtoData data = null;
    
        try {
            data = ProtoData.parseFrom(ByteString.copyFromUtf8(str));
        } catch (InvalidProtocolBufferException e) {
            e.printStackTrace();
        }
    
        return data;
    }
    
    1 回复  |  直到 8 年前
        1
  •  4
  •   Dante    8 年前

    您可以使用android.util.Base64将字节数组保存在SharedReferences中。

    String saveThis = Base64.encodeToString(array, Base64.DEFAULT);
    

    byte[] array = Base64.decode(stringFromSharedPrefs, Base64.DEFAULT);