如何将不可序列化的对象传递给意图服务?

Posted

技术标签:

【中文标题】如何将不可序列化的对象传递给意图服务?【英文标题】:How to pass non serializable objects to an intent service? 【发布时间】:2018-05-22 15:39:29 【问题描述】:

我正在使用AlarmManager 安排IntentService 定期运行一些任务,但我需要将不可序列化的实例传递给运行这些任务所需的服务,因为它们不可序列化,我不能使用Intent 传递它们。这些实例也不能是static,那么最好的处理方法是什么?

【问题讨论】:

你在说什么类型的对象?举个例子。 【参考方案1】:

如果您使用AlarmManager,您的进程可能在事件之间不存在,因此这些对象可能不存在。将数据保存到IntentService 可以读入的持久存储(SQLite 数据库、SharedPreferences 或其他类型的文件)。您可以使用进程级缓存来节省 I/O 时间,如果您的过程恰好在连续事件中保留,但这是一种优化。

【讨论】:

以上是关于如何将不可序列化的对象传递给意图服务?的主要内容,如果未能解决你的问题,请参考以下文章

在可序列化类中传递对象捆绑意图

如何将参数传递给反序列化json的构造函数

将进程中的连接对象传递给python中的主进程

将 C++ 对象传递给 C#

将“非序列化”对象传递给另一个没有序列化/反序列化 (C#) 的应用程序域

将 Django 对象传递给 ExtJS 的正确方法