【问题标题】:How to make my object live even my app closed即使我的应用程序关闭,如何让我的对象生效
【发布时间】:2014-03-11 06:16:18
【问题描述】:

我遇到了一种情况,为了简单起见,我有两个 APPS 将其保留为 APP1APP2,我将对象 remoteCallback 作为 CALLBACK 从 APP1 传递到 APP2 以供将来使用。

根据结果 APP2 将使用对象 remoteCallback 实例化方法 updateStatus(String msg),一切正常,但是当我关闭 APP1 并清除内存时,APP2 无法调用我知道是什么原因的方法问题我想知道是否有任何方法可以使对象(remoteCallback)即使 APP1 关闭也能存活。

提前致谢。

【问题讨论】:

    标签: android object callback object-lifetime


    【解决方案1】:

    我会在这里使用未绑定的Service。未绑定的服务使即使您的某个应用程序关闭,如果条件允许,它仍将在后台运行。如果您使用了绑定 Service,如果您的应用停止,它将随着您的应用停止。

    这与 AsyncTaskThread 不同,因为即使它们在后台运行,如果 Android 需要更多内存或缺乏资源,也会有很大的被杀死的变化。

    然而,这为您带来了新的责任:您必须确保在您的应用中相应地使用 startService()stopService(),并且不要让您的 Service 无限期地运行。

    This 似乎是一个很好的例子来说明它是如何工作的,但是你可能会发现很多关于 unbound Services 的文档

    【讨论】:

    • 我尝试了未绑定的服务,但它不起作用。这意味着每当我强制关闭应用程序时,该对象就会丢失。但是任何方法都是好的答案 +1。
    • 你说得对,我忘了说:如果你希望它是一个在应用关闭后不关闭的Service,将其声明为 foreground 服务.如果您将其声明为背景Service,这将更好地防止停止声明的Service
    【解决方案2】:

    我们无法阻止应用程序销毁,因此请使用BROADCAST RECEIVER,而不是传递回调来获取详细信息。 这是我适应这种情况的解决方案。

    【讨论】:

      【解决方案3】:

      “我想知道有没有办法让对象(remoteCallback)在 APP1 关闭的情况下仍然存在。”

      PendingIntent ?...

      它与通知使用的机制相同。

      【讨论】:

        【解决方案4】:

        应用关闭后,您可以启动后台服务并存储您想要居住的对象

        您可以声明公共静态数据成员并使用整个应用程序

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-07-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多