初学 Android,请教下关于 context 的问题

2021-12-21 11:44:24 +08:00
 Features
我在 Service 使用 Context.getAssets()
需要将 Activity.this 传入到 Service 中
因为 Activity 在退出程序后,就会 destroyed()
我担心传入 Service 的 Context 会跟随被销毁
但经过我监测,实际运行中并没有被销毁
这是什么原因呢?

这种情况是可靠的吗? Context 总是不会被销毁吗?
11362 次点击
所在节点    Android
26 条回复
Lin0936
2021-12-22 09:35:52 +08:00
@Features Service 去更新 UI 不是一个好的做法,现在推荐是通过 ViewModel 管理状态,然后 ViewModel 通知 Activity/Fragment 来更新
zxjunz
2021-12-22 09:48:32 +08:00
集美们,看到了吧,这就是典型的内存泄漏
cenbiq
2021-12-22 10:42:18 +08:00
@Features Service 持有 UI 对象本身就很离奇...楼上有给你推荐方法,说到底你需要的是某种通知机制,Service 在运行的时候能够“通知”UI 更新。
lisongeee
2021-12-22 14:46:10 +08:00
这里应该用广播或者 bind 做信息的传递吧
Features
2021-12-22 17:51:42 +08:00
@lisongeee 是用的 Binder 传递,但是原理应该一样的吧?
lisongeee
2021-12-22 18:08:33 +08:00
@Features Binder 和 Broadcast 原理不一样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/823505

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX