问题标签 [parcelable]
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.
android - Parcelable 用于进程通信的效率
我想Bitmap
在一个进程内将一个巨大的对象(例如)从一个活动传递到另一个活动。如果我把它放入Bundle
as Parcelable
,Android真的会序列化对象还是通过引用传递它?
parcelable - 将相同的类实例从一个活动传递到另一个活动时出现问题
我试图将 SampleParcelable 类对象说 sampleObj 从我的 ClassA(当前)活动传递给 ClassB(一个新活动),但是当我记录对象值时,我在 ClassA 中创建的对象的值与我得到的完全不同B类。
A类:-
B类:-
SampleParcelable :-
我猜在调试之后,我知道我的对象值不同的 1 个原因,因为当时在使用 getParcelableExtra() 检索 ClassB 中的对象时,我的 SampleParcelable 类 createFromParcel 方法被调用,该方法在内部创建了一个新对象。也许我错了。
我没有得到任何解决方案,我只想在我的新类中使用相同的对象,以便我可以使用在我的 ClassA 活动中设置的对象访问一些值。
提前致谢
android - Parcel.readException 将对象传递给远程服务
我编写了一个远程服务,客户端可以使用 Android 提供的 IPC 的常用机制登录,并且绑定似乎有效。当我调用一个必须将对象作为参数传递的方法时,问题就出现了,因为我得到了这个“奇怪”的异常:
它似乎是从 .aidl 文件生成的代理类中抛出的。
更奇怪的是,对象似乎被正确传递了,但周围可能有问题。任何想法?
android - Android:解包导致内存不足异常。如何检查对象?
这是设置:
- 我有一个包含项目列表的活动(从服务器更新,由普通的 java 类表示)。这些项目通过自定义 BaseAdapter 和每行的自定义 View 呈现。
- 这些项目实现了 Parcelable,因此当屏幕旋转时,项目以 ParcelableArrayList 的形式保存在包中,然后在不返回服务器的情况下恢复。
到目前为止,这是一个相当简单的设置,但是我想将其中一个项目传递给另一个活动。Bundle 有一个“pubExtra(String, Parcelable)”方法,我想用它把对象放在那里,然后通过意图传递。当我这样做时,由于 OutOfMemoryException,设备开始强制关闭。似乎在尝试解包对象时,它请求〜30mb(!)
看起来对象必须持有对其他东西的引用,因为对象本身只包含一些 int/float/String 字段和相关方法。我无法通过查看代码或调试检查器来追踪这一点,而且我不知道如何有效地使用堆查看器。
有什么建议么?
这是堆栈跟踪
java - Android 中的 Parcelable 和继承
我得到了一个 Parcelable 的实现,它适用于不涉及继承的单个类。当涉及到继承时,我在找出实现接口的最佳方法时遇到了问题。假设我得到了这个:
问题是,这是为 B 实现 Parcelable 接口的推荐方法(在 A 中?在他们两个中?如何?)
android - 可在哪里/何时使用 describeContents()?
有谁知道在哪里/何时调用Parcelable的这种方法?
它必须被覆盖。但是我应该考虑用它做一些有用的事情吗?
android - Android:在视图之间传递数据
在我的 Android 应用程序中,我有两个自定义视图类 - PortraitClass 和 LandscapeClass。他们都做同样的事情。在运行应用程序时,视图类从 SDCard 中获取一些图片,然后进行操作(倾斜等)并显示它们。这两个类之间唯一的区别是图片的布局在屏幕上略有不同。
我有两个 display.xml 文件(一个在 layout 文件夹下,另一个在 layout-land 下)。layout 文件夹下的一个添加了 Portrait,另一个添加了 Landscape 类。
在方向更改时,我想将信息(图片编号和一些位图)从一个类发送到另一个类,这样我就不必再次获取所有位图,也可以显示正在显示的位图。
我发现可包裹的东西有点令人困惑。我尝试遵循this_example,但我注意到在 onRestoreInstance 中,Parcelable 的“mSuperState”为空,并且我得到一个 classCastException @“SavedState ss = (SavedState)state”。我试图传递的整数(图片编号)就在那里。我不确定我做错了什么。
android - 安卓:通行证到另一个活动
我有一个 GeoPoint 类型的 ArrayList。
我想传递points
给另一个活动并检索该活动中的数据。我该怎么做?我知道我必须使用parcelable
但我搜索过,但找不到传递 ArrayLists 的方法。
android - 嵌套打包:RuntimeException - 在偏移量 440 处解组未知类型代码 3211319
我需要将一些数据发送到一个Activity
,它可能在不同的上下文中运行。为此,我创建了一个类 A,它ArrayList
的数据类型为 B 作为其实例成员之一。我将 B 类声明为 A 类的内部类。为了发送这个 A 类的实例Intent
,我将 A 类和 B 类都创建了Parcelable
。
类结构是这样的(这不包括完整的代码,例如为创建类而编写的代码Parcelable
):
我使用该putExtra (String name, Parcelable value)
功能来放置数据。
但在接收方,我得到了以下异常:
然后我将 B 类移到 A 类之外(因为我认为这可能是内部类的问题,并声明了 CREATOR 静态。当 B 类是 A 类的内部类时,这个静态声明不存在)。但这没有帮助。
这似乎是由于嵌套 Parceling 造成的。
有什么建议吗??
注意:当我使用android.os.Bundle.putParcelable(String key, Parcelable value)
Bundle 类的函数,然后使用它解组它时,android.os.Bundle.getParcelable(String key)
一切都很好。因此,问题似乎仅与意图有关。
android - 如何通过捆绑发送对象
我需要通过一个包传递对完成我大部分处理的类的引用。
问题是它与意图或上下文无关,并且有大量的非原始对象。如何将类打包成可打包/可序列化并将其传递给startActivityForResult
?