Ala*_*lan 6 serialization android android-intent
Android Intents有一个方便的toURI()方法,API文档似乎指出这是一种将Intent序列化为URI,然后再将其解析为Intent的方法.不幸的是,在测试这个功能时,我发现它并没有序列化所有额外的东西,只是原始类型(boolean,int,long,float,String).如果intent指定任何Parcelable或数组附加组件,那么这些将会丢失.
记录此限制的地方(如果有的话)?这种行为是否有一些明显的原因(我可以想象Parcelables有些困难)?最重要的是,是否有推荐的方法来序列化和解析Intents?
我当前的实现只是将Intent组件(action,categories,data uri和extras)写入SharedPreferences.此策略不支持Parcelables.
Android Intents有一个方便的toURI()方法,API文档似乎指出这是一种将Intent序列化为URI,然后再将其解析为Intent的方法.
并不是的.
记录此限制的地方(如果有的话)?
我根本没想到会有额外的内容Uri.这类Uri生成背后的重点是向您展示如何Uri在网站上添加链接,您不需要为该方案添加额外内容.
toURI() 不是序列化.
最重要的是,是否有推荐的方法来序列化和解析Intents?
Parcelable不可以.特别是,根据定义,不能序列化.
我当前的实现只是将Intent组件(action,categories,data uri和extras)写入SharedPreferences.
这种方法简直就是奇怪的.
使用数据库.如果您作为一个年幼的孩子受到数据库攻击,因此生活在对数据库的恐惧中,请使用JSON,XML或Serializable/ 序列化ObjectOutputStream到文件中.使用SharedPreferences用户首选项.
此策略不支持Parcelables.
也不应该.也不可以.Parcelable用于将对象图转换为内存块,仅用于正在运行的设备.它不是一个长期的持久性机制.