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

0 投票
0 回答
316 浏览

java - 有两种方法可以测试 View.onRestoreInstanceState(Parcelable state),一种有效,另一种崩溃

onRestoreInstanceState 可以通过更改屏幕方向和更改模拟器设置 devtools/Development Settings/max app process 进行测试 - 将 max 设置为 1。onRestoreInstanceState 适用于屏幕方向,但在最大应用程序进程设置为 1 并重新启动应用程序时崩溃。我使用了 Debug.waitForDebugger(); 为设置为 1 的最大应用程序进程连接调试器。

在视图中,可解析的内容被保存并以递归方式恢复:

恢复:

保存:

0 投票
2 回答
2604 浏览

android - android嵌套对象打包

我们如何在一个意图中包裹嵌套对象?.
例如,假设有一个对象 A 包含一个字符串变量和另一个对象 B。现在 B 包含对象 C 。C 包含一个字符串列表。那么我如何才能按意图包裹对象 A。
对此的任何帮助将不胜感激。
提前致谢。

执行:

如何为 C 类编写 parcelable。我正在使用

阅读:

但它不工作

0 投票
2 回答
1813 浏览

android - 编组通知包裹

我正在尝试将通知对象写入文件。我能找到的最好方法是将对象写入包裹,编组该包裹以获取字节 [],然后将其写入文件。

但是,当我尝试编组包裹时出现运行时异常:“尝试编组包含 Binder 对象的包裹。”

有没有更好的方法将通知对象写入文件?否则,我如何让这种方法发挥作用?

0 投票
2 回答
24047 浏览

android - android.os.BadParcelableException:解组时的 ClassNotFoundException:异常

这些值正在传递并且执行正确,但我看到这些被抛出在 logcat 中,我想消除这些,我检查了较旧的论坛,但没有具体说明。我在下面发布我的代码,请让我知道为什么会出现这个问题发生

重复抛出的异常是:但这并不妨碍执行

0 投票
0 回答
609 浏览

android - Android Bundle.containsKey 抛出异常

我正在编写一个 Android 应用程序。在这个应用程序中,用户应该能够在未来收到通知。我正在使用 AlarmManager 向我的接收器发送一个广播,该接收器内部有一个 Intent,通知为 Parceled Extra。我不想把整个代码放在这里(太多了),所以我只解释工作流程并将相关代码放在这里。

我已经扩展了 Notification 来让自己有一个 id 和一个来自我的模型的对象(模型是 Parcelable)。我注意通知在我的模型之前被打包和解包。

要发送警报,我将创建一个新的通知实例并setLatestEventInfo使用模型中的数据进行调用。如果我直接推送此通知,一切都很好。

之后,我创建了一个新的 Pending-Broadcast-Intent。放在广播中的意图将我的通知作为 ParcelableExtra。然后我通过 AlarmManager.set() 触发 PendingIntent。如果时间到了,我会在我的 BroadcastReciever 中收到广播。

我从我的 Intent 中获取了额外的内容,并想看看,有一个我用来存储它的密钥“NotificationExtra”。在那次通话中,我得到了一个 ClassCastException。如果您对某些代码示例感兴趣,请随时提问。任何想法会出什么问题?我可以将空值存储为 Parcelables 吗?如果我可以存储空值,它们可以被正确读取吗?

0 投票
2 回答
1851 浏览

android - 我怎么知道为 Parcel.readStringArray() 制作我的数组有多大?

执行此操作时出现空指针异常:

看来我需要先分配数组。但是我怎么知道它有多大呢?我必须先写大小,然后再读大小吗?不是有一种writeStringArray()方法来为我处理这个问题吗?

来自Android 文档

有多种方法可以读取和写入原始对象的原始数组,通常会写入 4 字节长度,然后是原始数据项。

所以,如果我自己写计数,它会被写两次。必须有某种方法可以做到这一点,而我不负责管理。

0 投票
2 回答
4843 浏览

android - 如何使用 Parcel.readBooleanArray()?

我正在尝试使用 android.os.Parcel 中的 readBooleanArray,但 readBooleanArray 返回 void,因此我不清楚如何使用此方法。

我正在使用以下方法向 Parcel 写入一些内容:

在 Parcelable 构造函数中应该如何获取这个值?

0 投票
2 回答
15618 浏览

android - 如何:在 Android 中打包位图

我有一个序列化类,我想向其中添加位图,但位图不支持序列化。

相反,我想我会使用一个包裹,但无法让它工作。

下面是一些使用局部变量的测试代码:

我在上面的最后一行收到以下错误:

0 投票
2 回答
8199 浏览

android - 在Android中制作自定义java对象Parcelable

我正在尝试MyCustomObject通过意图将类型的对象发送到另一个活动。我知道,要使类 Parcelable,我应该这样做public class MyCustomObject implements Parcelable,但我不确定自定义对象数组如何在 Parcelable 中工作。这是我到目前为止所得到的......另外,我是否需要让 Search 类也实现 Parcelable ?

这是我更新的答案,我现在得到一个空对象intent.getParcelableExtra(search)。也许我没有正确创建搜索数组?

0 投票
3 回答
9912 浏览

android - 将位图放入包中

我想使用 AIDL 将字符串和位图传递给服务。Service 实现了这个 AIDL 方法:

在我的例子中,Bundle 包含一个字符串和一个位图。

调用应用程序(客户端)具有以下代码:

在服务端,我有一个带有以下代码的 ButtonComponent 类:

创建 ButtonComponent 后,Service 使用 ButtonComponent 对象中的文本和图标创建一个按钮:

结果,按钮以正确的文本显示,我可以看到图标的空间,但未绘制实际的位图(即文本左侧有一个空白区域)。

以这种方式将 Bitmap 放入 Bundle 是否正确?

如果我应该使用 Parcel(与 Bundle 相比),有没有办法在 AIDL 方法中维护单个“数据”参数以将文本和图标保持在一起?

附带问题:我如何决定使用捆绑包和包裹?

非常感谢。