【问题标题】:Static instances in an android applicationAndroid 应用程序中的静态实例
【发布时间】:2012-10-04 01:51:44
【问题描述】:

仅供参考:我不是专业人士,所以这可能很容易解决我只是直到现在才找到解决方案。

以下场景。我有一个安卓应用程序。在主要活动中,我初始化一个类的静态实例以通过 WebSockets 进行通信,然后我启动一个使用该静态实例的服务。

  1. 现在,当我关闭活动时,我保持服务在后台运行(使用部分唤醒锁),问题是,当我稍后销毁服务时,静态实例有时仍然处于活动状态直到我从“缓存进程”中删除该应用程序。

  2. 当我再次启动活动时,我又拥有了一个初始化的新静态实例。

我怎样才能避免这种情况?

【问题讨论】:

    标签: android class service android-activity static


    【解决方案1】:

    问题是,当我稍后销毁服务时,静态实例有时会保持活动状态,直到我从“缓存进程”中删除应用程序。

    如果您不希望这样做,请采取措施从您的服务的onDestroy() 中阻止它。或者,不要一开始就让它成为静态的,而是让它成为服务本身的一部分。

    【讨论】:

    • 我正在关闭 onDestroy() 中的连接,删除我创建的所有侦听器等。我无法将其放入服务本身,因为我需要从多个类和服务访问连接。
    • @i--: "我正在关闭 onDestroy() 中的连接,删除我创建的所有侦听器等。" -- 那么如果“静态实例有时仍然处于活动状态”,则您的 onDestroy() 中存在错误,或者您没有在您认为自己停止服务时停止服务。
    猜你喜欢
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 2023-03-08
    • 2020-10-17
    • 2012-05-25
    相关资源
    最近更新 更多