gpt4 book ai didi

android - 在应用程序类中绑定(bind) Android 服务是个好主意吗?

转载 作者:行者123 更新时间:2023-11-29 01:07:47 27 4
gpt4 key购买 nike

我有一个 Android 前台服务,其中包含 session 映射(键、 session )。在我的 Activity 中,我收到一个 key ,我想从服务中获取 session 。因此,我将我的每个 Activity 都绑定(bind)到该服务,我可以要求该服务使用我的 key 获取我的 session 。但是这样做意味着我必须等待 onServiceConnected() 来获取 session 。

在我的应用程序类中绑定(bind)一次服务并将我的服务放在一个静态变量中是个好主意,然后我的所有 Activity 都可以直接在它们的 onCreate() 中访问该服务而不是等待onServiceConnected() 的调用?但是确定我的静态变量会一直存在吗?你知道Android在需要资源时是否可以删除那个静态变量吗?我想应用程序实例永远不会被删除,对吗?因此,将我的服务保存在静态变量中可能是个好主意。你怎么看?

最佳答案

你正在尝试做的事情听起来像是 React 中某种调度程序的肮脏实现,我很想自己做,但因为时间不够而没有这样做。请让我们知道您的结果。

我建议使用 Messager,文档中有相关信息,因此不需要静态 https://developer.android.com/guide/components/bound-services.html?hl=en-419

是的,Android 操作系统可以清理任何东西,它可以终止服务,它可以使变量为空。大多数情况下这不会发生,因为它只会对前台应用程序进行优先级排序。因此,如果用户打开 10 个应用程序并且您处于后台,它可能会。这对我来说似乎没问题。有时我也遇到过变量在 Fragment 中变为 null,但后来我缩小了变量范围并修复了它。

此外,如果您正在考虑这个问题,请尝试使用 EventBus 库或使用 ReactJava,也许 Realm ORM 甚至 Firebase 可以帮助您。

关于android - 在应用程序类中绑定(bind) Android 服务是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45636985/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com