【问题标题】:Sending non serializable data from service to activity将不可序列化的数据从服务发送到活动
【发布时间】:2015-10-17 22:19:36
【问题描述】:

Notify activity from service

我想知道当您的活动和服务位于不同的包中时,是否可以按照上述帖子中选择的答案所说的那样做。基本上我有一个不可序列化的对象(比如说一个创建的视图),我想将它从我的服务发送到我的活动。使用自定义活页夹会很容易,但正如我发现的那样,当您的服务和活动位于单独的包中时,您不能使用自定义活页夹。

我已经考虑了几个星期,它确实阻碍了我正在从事的项目。

对于那些会问的人,我正在尝试制作一个允许来自其他包的“插件”的框架。但我不确定如何在所述服务和活动之间来回发送不可序列化的日期。

【问题讨论】:

    标签: java android serialization


    【解决方案1】:

    这取决于对象的复杂性,如果您要序列化的对象是来自 Android SDK 的对象,可以说是 RelativeLayoutCursor 我无论如何都不会看到这种情况,因为这些对象包含对您无权修改或使它们实现Serializable 接口的其他对象的引用。

    如果您的对象是您实现的类,并且该类中的所有引用也指向您实现的另一个类(或 Serializable/Parceable 对象),那么您肯定可以。这样做的一种方法是,让它们实现 Serializable 或创建自己的 Parceable 有很多工具可以快速实现这一目标,例如 thisthis 之一。

    如果没有一个答案让您满意,请告诉我您想从服务中发送什么。

    编辑

    您是否尝试让一个类同时实现 SerializableOnClickListener 并通过意图发送它?

    听起来你需要某种命令模式。

    【讨论】:

    • 这个想法是一个RelativeLayout 是的,虽然它不是必需的。我更注意到我可以传递所需的内容并让活动创建相对布局并放入所需的信息。我不能做的是处理触摸。我的活动不知道在触摸视图时如何处理视图,因为我没有附加到视图的 onClickListener。因此,我试图将 OnClickListener 对象从服务发送到活动,但无济于事。
    • 我编辑了我的答案,但我建议您采用第二种方法,不要依赖OnClickListener,而是尝试制作自己的指挥官对象,通过意图包发送它并实例化OnClickListener 在应用程序中与布局一样
    • 这是一个有趣的想法。所以让我的框架有某种静态的“命令”类,让它根据点击传回命令,然后是服务,然后做它需要做的任何事情?
    • 对不起,我先走了,稍后我会给你一个具体的例子检查命令模式,基本上命令会告诉你的应用程序的onclick必须做什么
    • 我会修改这个想法,因为我相信这是我需要的,我很想看看你有什么例子。
    猜你喜欢
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多