问题标签 [parcel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 将 Objects 成员写入 Parcel
到目前为止,我一直在Parcelable
毫无问题地处理对象,主要是因为它们的所有成员都是具有writeX()
与之关联的方法的类型。例如,我这样做:
但是现在,如果我有Bar
会员,事情对我来说有点冒险:
我是以错误的方式接近这个吗?我的writeToParcel
to parcel member应该怎么做Bar
?
android - 从 getParcelableExtra(intent_name) 创建实现 Parcelable 的对象的语法
我正在实现 RESTful 通信的 DataDroid 模型,在实现我的SearchCriteria
. 问题是,为了将SearchCriteria
周围作为额外的意图传递,我必须让它实现Parcelable
。但是,我Worker
的start
函数需要一个SearchCriteria
类,导致错误:Required: my.classes.SearchCriteria; Found: android.os.Parcelable
.
假设我已经Parcelable
为我的SearchCriteria
班级正确实现了,我怎样才能从一个包裹中快速创建一个对象(使用getParcelable Extra(INTENT_NAME)
?
编辑:我意识到我可以通过公开我的构造函数来快速完成这一点实际上,这不起作用-我将 aSearchCriteria
,Parcel
但是还有另一种方法吗?Parcel
与Parcelable
事物混淆了。
android - Android 包裹,存储在内存中还是磁盘上?如何存储在磁盘上
我看到 parcel 和 serializable 可以互换使用,或者至少在同一上下文中不直观。你能为我澄清一些事情吗?
是包裹的持久存储(在磁盘上)或仅存储在内存中
我需要可序列化来将包裹数据存储到磁盘吗
谢谢你的洞察力,不,android开发手册对我来说并不明显
android - BadParcelableException:解组时的 ClassNotFoundException:(空类名)
我有一个名为 AllStatStruct 的类。这个类包含三个属性,它们是我的类 StatStructCycle、StatStructHistory 和 MatrixStruct 的对象。每个类都扩展类 DataStruct 并实现 Parcelable 接口。readParceable()
在接口的实现中,每个类都是使用or来读写的writeParceable()
。
在我的 Activity 中,我在 AsyncTask 中调用 SOAP webservice 并获取 class 的对象AllStatStruct
。这个对象通过创建一个传递给下一个活动Bundle
:
编组包裹效果很好,正如我在 LogCat 中的跟踪输出中看到的那样。但是在解组包裹时,会发生 ClassNotFoundException,我不知道为什么。这是跟踪:
如您所见,未找到的类没有给出名称!所以它正在搜索一个名为“”的类,当然它没有找到。
我不知道,为什么会这样。有人能帮我吗?我已经尝试过使用 ClassLoader,但是给意图一个额外的类加载器并使用这个来解组 parcelables 是行不通的。
编辑:
正如您所建议的,我尝试分别传递 AllStatStruct 的几个部分。它与StatStructCycle
和一起工作正常MatrixStruct
,但与StatStructHistory
,仍然抛出错误。
现在,NullPointerException
当我尝试用StatStructCycle
s 解组我的 ArrayList 时,我得到了一个 , 。我注释掉了历史的其他部分。
我尝试使用 and 编写和读取 ArrayList writeTypedList(List<T> list)
,readTypedList(List<T> list, Creator<T> c)
但它也不起作用。
当我使用 ArrayLists 时,我还使用 将它们的容量调整为实际大小trimToSize()
,因为我认为 ArrayList 的“空”插槽可能会导致问题。但同样,情况并非如此......
使用调试器启动应用程序显示,编组StatStructHistory
没有空值......每个属性或列表项都被初始化。我不知道这NullPointerException
是从哪里来的。
最好的问候 htz
android - 垃圾收集后Android是否可以使用Parcelable数据?
可打包数据是持久的吗?我在 android 生命周期函数中销毁了一些变量,例如onDestroy()
,但是写入 parcelable 的东西呢?
最终我想通过意图传递我的可打包对象的元素,垃圾收集后它们是否仍然可用(java或dalvik)?
谢谢你
android - 一个 Parcel 可以存储多少数据?
Parcelables
我在 Activity 之间共享信息时遇到了问题。我对实施没有问题,但在某些手机上的行为。看来,里面存储的信息实在是太多了。当对象被解组时,这会导致 MemoryExceptions 抛出。我在文档中找不到任何类型的内存限制。如果给定的信息足够小,可以在将其写入aParcel
之前将它们写入/从 a 中写入/读取它们,那么找出的最佳方法是什么?Parcelable
Parcel
java - Android Parcelable 占用更多内存
问题很简单,如果我使一个对象可打包,并将其放入一个包中并使用该包创建一个片段。对象是被克隆还是被引用。
上下文。
我在 ArrayList 中存储/引用了一个对象。取决于 ArrayList 中对象的类型(使用多态性)。我创建了一个适合处理它的片段。
我还需要将此对象传递给片段。该片段在自定义视图寻呼机中使用。我不希望有重复的对象,而且在我看来是可打包的克隆对象。
另一种方法是在 ArrayList 中传递对象的索引。然后使用 getActivity().myList.get(传递给的整数)从片段中获取对数组列表的引用。但这对我来说似乎不是很安全(ArrayList 的内容可能会改变,尽管我只是删除了所有内容并重新开始)。我还读过,您应该避免将参数传递给片段构造函数,因为它可能会使用默认的无参数构造函数重新创建。
(尽管我目前正在销毁任何重新创建的片段,因为重新附加到正确的视图存在一些奇怪的问题,另一篇文章)。
新的子问题:有没有办法通过引用片段来传递值?
android - android sms sendtextmessage 抛出 readexception
我正在使用以下代码从我的应用程序发送短信。它在我的 Galaxy pop 设备上运行良好。但是在 Premium Galaxy 设备中获得 Readexception。请让我知道可能是什么问题。
android - 替换 Parcelable 接口的最佳实践
我通常使用接口Parcelable
将数据从一个活动传递到另一个活动。如果数据不多,它工作正常。但是,在某些情况下,我必须将大量数据传递给 Activity。这些数据的编组似乎没有任何错误,但解组会导致如下错误:
似乎要解组的数据太多了。一个真正的 Hackish 解决方案(我真的不喜欢)是给那个特殊的 Activity 一个静态方法来将数据传递给它,在onCreate()
. 这至少适用于我可以控制源的活动,但如果我没有,则会失败。
我想知道是否还有其他可接受的尝试,将一堆数据从一个活动传递到另一个活动。如果我可以重用我已经为 Parcelable 接口编写的一些代码,那就太好了,但这不是必需的