应用启动时的初始化代码放置问题

2021-05-06 20:43:22 +08:00
 HMSQQbA

刚接触安卓开发,很多地方不太懂

在应用启动时往往需要进行初始化工作,如连接数据库等。这些代码应该放在哪里合适呢?

目前只能想到 3 个选择:

在 stackoverflow 等地搜了半天,没看到几个相关问题,也几乎没有讨论

希望大佬赐教,谢谢!

4106 次点击
所在节点    Android
8 条回复
limuyan44
2021-05-06 20:59:22 +08:00
下几个主流的 app 就知道了,很多都没加固过。
janus77
2021-05-06 21:05:47 +08:00
都可以,图方便就第一种
Jirajine
2021-05-06 21:08:02 +08:00
main activity 的 onCreate 就可以了,当然复杂点的应用 main activity 就是一个 splash 界面。
CEBBCAT
2021-05-06 21:51:25 +08:00
Java 不记得多少知识了,想问一下测试的时候 onCreate 会不会被调用?如果是的话好像不怎么便于单元测试
Nuttertoo1s
2021-05-06 22:17:07 +08:00
jetpack 有个组件专门用来管理初始化,Application 类讲道理是不会初始化失败的,很多第三方 SDk 都是要求在 Application 里进行初始化
ikas
2021-05-07 09:51:52 +08:00
没必要搞个 splash,放到 Application 就是最简单的,可以搞定所有组件的初始化依赖.缺点是,不管启动什么组件都需要执行初始化,不过你可以进行判断,只初始化需要的.
kingiis
2021-05-07 13:28:16 +08:00
分级咯
全局实例级别的扔 application 里 从 splash 去初始化
1.确认你获得了用户授权 就那个 隐私协议 用户协议之类的
2.才能申请各种权限
3.开始初始化各种全局实例

就这个流程就行了
HMSQQbA
2021-05-18 17:58:39 +08:00
感谢各位回复,最开始我尝试将初始化代码放到 Application 里,但是我忘记了当用户退出所有 Activity 时 Application 对象不会销毁,导致一些与预期不符的现象。(下次启动时 Application 对象被重用)看来这方面的设计还要考虑一下。

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

https://www.v2ex.com/t/775276

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

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

© 2021 V2EX