如何发送 Bundle 中的自定义对象的 ArrayList

2023-12-21

我有一个应用程序,它使用服务每 x 秒创建一个自定义对象 (MyObject) 的 ArrayList。然后我希望我的 Activity 获得这个 ArrayList。

我目前计划让服务在每次完成数据查询时向活动处理程序发送一条消息。我希望发送给处理程序的消息包含 MyObjects 的 ArrayList。

当在 Activity 中构建方法以从消息中获取此 ArrayList 时,我注意到我做不到。

如果我尝试过

msg.getData().getParcelableArrayList("myObjects")

然后我将其传递给预期 ArrayList 的方法不会接受它。如果我尝试投射结果:

(ArrayList<MyObject>)msg.getData().getParcelableArrayList("myObjects")

我收到错误:Cannot cast from ArrayList<Parcelable> to ArrayList<MyObject>

MyObject 实现 Parcelable,并且我已通过让我的活动调用服务上的方法来检索它,成功地将 ArrayList 从我的服务发送到我的活动。不过,我试图避免让我的活动轮询我的服务来获取这些数据。

1) 如何在消息中将包内的 ArrayList 发送给处理程序?

2)我是否应该使用不同的模型来让我的服务更新我的活动中可能可见或不可见的数据?我始终希望我的活动中的数据是来自服务的最新数据。


我有完全相同的问题,同时仍在烦恼Parcelable,我发现静态变量对于这项任务来说并不是一个坏主意。

您可以简单地创建一个静态字段

public static ArrayList<MyObject> myObjects = .. 

并通过其他地方使用它MyRefActivity.myObjects

我不确定公共静态变量在具有活动的应用程序上下文中意味着什么。如果您对此或此方法的性能方面也有疑问,请参阅:

  • 在活动之间共享数据的最佳方式是什么? https://stackoverflow.com/questions/4878159/android-whats-the-best-way-to-share-data-between-activities
  • 在Android中使用静态变量 https://stackoverflow.com/questions/2475978/using-static-variables-in-android

Cheers.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何发送 Bundle 中的自定义对象的 ArrayList 的相关文章

  • 将 Cordova Android 项目迁移到 AndroidX

    我目前正在使用 AdMob 测试广告测试混合 Cordova Android 应用程序 该应用程序使用一个自定义插件 即内部插件 我可以通过该插件访问 Google Play Services AdMob API 的相关位plugin xm
  • 在 PushSharp 4.0 中构建 GCM 消息

    我对如何使用 PushSharp 构建 GCM 推送通知的消息正文感到有些困惑 GitHub 存储库中的文档和测试文件显示的消息结构如下 broker QueueNotification new GcmNotification Regist
  • 设置自定义属性android的值

    我有一个自定义属性 如下所示
  • 如何取消/取消订阅协程 Flow

    当我尝试提前取消流程时 我注意到一个奇怪的行为 看一下下面的例子 这是一个发出整数值的简单流程 private fun createFlow flow repeat 10000 emit it 然后我打电话给createFlow使用此代码的
  • 如何在gradle中执行jar文件?

    当我使用 ant 构建我的 android 项目时 我需要这样的任务
  • 连接到 Mac Mini 时设备经常失去连接

    我正在尝试在 MAC Mini 上开发 android 应用程序 并安装了所有必需的软件 如 android SDK eclipse 和 ADT 到目前为止 除了一件事之外 一切都运行良好 我正在通过 USB 连接 Google Nexus
  • 谷歌地图返回空指针异常

    当我尝试在片段上显示地图时 它返回空指针异常 我已将所有内容添加到清单中的每个权限中 我正在附加片段文件 XML 文件和日志目录 Chatffragment java public class ChatFragment extends Fr
  • android listviews:页眉和页脚视图

    在我的 ListActivity 中 我需要页眉和页脚视图 位于列表的顶部和底部 分别用作列表上的上一页和下一页按钮 因为我只想一次仅显示 20 个项目 我通过执行以下操作来设置头视图和脚视图 getListView addHeaderVi
  • 注册到 gcm 时获取空设备 ID

    GCMRegistrar checkDevice this GCMRegistrar unregister this GCMRegistrar checkManifest this if GCMRegistrar isRegistered
  • Android - 超链接不可点击

    我的应用程序中有一些链接 一个用于网站 一个用于电话号码 一个用于电子邮件 电子邮件和电话链接均有效且可点击 但由于某种原因 网站超链接仍然无法点击 有什么想法吗 代码如下
  • 如何使用 Google Assistant 触发我的应用程序

    我正在尝试构建一个可以由谷歌助手触发的简单应用程序 就像用户说 嘿 Google 打开 TestApp 或 嘿 Google 从 TestApp 执行 xyz 一样 最好的方法是什么 对话流 说 好吧 Google 使用 您的应用程序 执行
  • Firebase API 密钥限制不适用于 Android 应用程序包名称和 SHA1 指纹

    我们正在使用 Google Firebase 获取我们应用程序的 CrashLytics 数据 以及通过google services json文件被提出作为一个安全问题 因为应用程序 apk 文件可以被逆向工程来获取该文件 然后攻击者可以
  • 以编程方式列出意图过滤器

    在 android Activity 中 有没有一种方法可以以编程方式列出它已注册的活动
  • Gradle:找不到受信任的证书

    我正在尝试使用 Gradle 在 Ubuntu 服务器上构建我的 Android 项目 在我的 Windows 10 PC 上使用 Android Studio 构建工作正常 但使用 gradlew build or gradlew cle
  • Android:从http获取文件并存储在SDCard中

    我已经遵循了许多类似问题中所写的内容 但仍然存在问题 从jsp我得到一个pdf 如果我转到URL 浏览器会自动打开pdf jsp页面会执行类似以下操作 Gets the pdf from the database BufferedInput
  • Android 折叠工具栏在折叠时没有隐藏其他元素

    我在 Android 上有一个布局 支持设计折叠工具栏 其中包含 TextView 但是当我折叠工具栏时 一些带有工具栏标题的 TextView 我想隐藏所有其他内容 而不是工具栏和标题 这是我的布局
  • 请求位置更新参数 android

    我对这个参数感到困惑 locationManager requestLocationUpdates provider 60000 10 listener 这是它的执行方式location update listener if time 60
  • 检索 StatusbarNotification 详细信息(标题、通知文本)的可靠方法

    我想从中获取尽可能多的信息StatusBarNotification 尽可能的对象 目前 唯一可以访问的 可靠 信息是tickerText 财产 我使用以下代码来获取通知的标题和文本RemoteViews 但很多时候 标题和 或文本只是 n
  • Android:永久保存文件(即使在清除数据/卸载后)

    我想知道是否有一种方法可以永久存储少量数据 永久我的意思是即使用户清除应用程序数据 卸载应用程序 我也希望数据保留下来 我知道当用户清除应用程序数据 卸载应用程序时 共享首选项和数据库将被删除 我也知道我可以在 SD 卡上保存内容 但是如果
  • 构建 AOSP 5.1 时出现 API 更改错误

    目前正在尝试构建 android 5 1 0 r5 我已经检查了来源并且没有做任何修改 但是 编译时出现以下错误 Checking API checkpublicapi current out target common obj PACKA

随机推荐