问题标签 [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.

0 投票
1 回答
200 浏览

android - Parcelable 用于进程通信的效率

我想Bitmap在一个进程内将一个巨大的对象(例如)从一个活动传递到另一个活动。如果我把它放入Bundleas Parcelable,Android真的会序列化对象还是通过引用传递它?

0 投票
1 回答
962 浏览

parcelable - 将相同的类实例从一个活动传递到另一个活动时出现问题

我试图将 SampleParcelable 类对象说 sampleObj 从我的 ClassA(当前)活动传递给 ClassB(一个新活动),但是当我记录对象值时,我在 ClassA 中创建的对象的值与我得到的完全不同B类。

A类:-

B类:-

SampleParcelable :-

我猜在调试之后,我知道我的对象值不同的 1 个原因,因为当时在使用 getParcelableExtra() 检索 ClassB 中的对象时,我的 SampleParcelable 类 createFromParcel 方法被调用,该方法在内部创建了一个新对象。也许我错了。

我没有得到任何解决方案,我只想在我的新类中使用相同的对象,以便我可以使用在我的 ClassA 活动中设置的对象访问一些值。

提前致谢

0 投票
1 回答
13174 浏览

android - Parcel.readException 将对象传递给远程服务

我编写了一个远程服务,客户端可以使用 Android 提供的 IPC 的常用机制登录,并且绑定似乎有效。当我调用一个必须将对象作为参数传递的方法时,问题就出现了,因为我得到了这个“奇怪”的异常:

它似乎是从 .aidl 文件生成的代理类中抛出的。

更奇怪的是,对象似乎被正确传递了,但周围可能有问题。任何想法?

0 投票
2 回答
2356 浏览

android - Android:解包导致内存不足异常。如何检查对象?

这是设置:

  • 我有一个包含项目列表的活动(从服务器更新,由普通的 java 类表示)。这些项目通过自定义 BaseAdapter 和每行的自定义 View 呈现。
  • 这些项目实现了 Parcelable,因此当屏幕旋转时,项目以 ParcelableArrayList 的形式保存在包中,然后在不返回服务器的情况下恢复。

到目前为止,这是一个相当简单的设置,但是我想将其中一个项目传递给另一个活动。Bundle 有一个“pubExtra(String, Parcelable)”方法,我想用它把对象放在那里,然后通过意图传递。当我这样做时,由于 OutOfMemoryException,设备开始强制关闭。似乎在尝试解包对象时,它请求〜30mb(!)

看起来对象必须持有对其他东西的引用,因为对象本身只包含一些 int/float/String 字段和相关方法。我无法通过查看代码或调试检查器来追踪这一点,而且我不知道如何有效地使用堆查看器。

有什么建议么?

这是堆栈跟踪

0 投票
3 回答
22954 浏览

java - Android 中的 Parcelable 和继承

我得到了一个 Parcelable 的实现,它适用于不涉及继承的单个类。当涉及到继承时,我在找出实现接口的最佳方法时遇到了问题。假设我得到了这个:

问题是,这是为 B 实现 Parcelable 接口的推荐方法(在 A 中?在他们两个中?如何?)

0 投票
3 回答
22207 浏览

android - 可在哪里/何时使用 describeContents()?

有谁知道在哪里/何时调用Parcelable的这种方法?

它必须被覆盖。但是我应该考虑用它做一些有用的事情吗?

0 投票
2 回答
2097 浏览

android - Android:在视图之间传递数据

在我的 Android 应用程序中,我有两个自定义视图类 - PortraitClass 和 LandscapeClass。他们都做同样的事情。在运行应用程序时,视图类从 SDCard 中获取一些图片,然后进行操作(倾斜等)并显示它们。这两个类之间唯一的区别是图片的布局在屏幕上略有不同。

我有两个 display.xml 文件(一个在 layout 文件夹下,另一个在 layout-land 下)。layout 文件夹下的一个添加了 Portrait,另一个添加了 Landscape 类。

在方向更改时,我想将信息(图片编号和一些位图)从一个类发送到另一个类,这样我就不必再次获取所有位图,也可以显示正在显示的位图。

我发现可包裹的东西有点令人困惑。我尝试遵循this_example,但我注意到在 onRestoreInstance 中,Parcelable 的“mSuperState”为空,并且我得到一个 classCastException @“SavedState ss = (SavedState)state”。我试图传递的整数(图片编号)就在那里。我不确定我做错了什么。

0 投票
1 回答
12531 浏览

android - 安卓:通行证到另一个活动

我有一个 GeoPoint 类型的 ArrayList。

我想传递points给另一个活动并检索该活动中的数据。我该怎么做?我知道我必须使用parcelable但我搜索过,但找不到传递 ArrayLists 的方法。

0 投票
2 回答
5320 浏览

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)一切都很好。因此,问题似乎仅与意图有关。

0 投票
11 回答
173232 浏览

android - 如何通过捆绑发送对象

我需要通过一个包传递对完成我大部分处理的类的引用。

问题是它与意图或上下文无关,并且有大量的非原始对象。如何将类打包成可打包/可序列化并将其传递给startActivityForResult?