gpt4 book ai didi

android - 从 Application 对象中获取网络请求的好方法?

转载 作者:行者123 更新时间:2023-11-29 01:31:17 24 4
gpt4 key购买 nike

the wonderful article作者 Chet Haase 我阅读了这条我认为非常重要的建议:

never make a network request in your Application object. That object may be created when one of the app’s Services or BroadcastReceivers is started; hitting the network will turn code that does a local update at a specific frequency into a regular DDoS.

我目前处理的应用程序遵循这种(坏的)做法:它在 Application.onCreate() 中执行用户登录 - 当然是在后台线程上,但仍然如此。这是一个要求:在任何 Activity 执行任何其他任务之前,用户需要先登录,这通常取决于登录用户。我目前使用 RxJava 以任何 Activity 任务可观察对象平面映射到用户登录事件的方式执行此操作,并且效果非常好。

所以如果我应该从 Application 中取出那个登录任务,它应该去哪里?起初我认为使用 ActivityLifecycleCallbacks 并观察要创建的第一个 Activity 会很好。但是这个回调(onActivityCreated)会在创建后调用,这对我来说已经太晚了。

所以我认为这应该通过创建一些 BaseActivity 类并将登录和其他初始化调用放在它的第一个 onCreate() 中来完成。但我觉得这不太好,因为我在一个 Activity 类中混合了一些应用程序范围的逻辑,这很臭......

有什么我可能错过的吗?

最佳答案

SplashActivity

启动应用程序的 Activity 。它检查资源可用性,并在需要时获取它们。它还会检查是否有 Activity 的用户 session ,如果没有则执行登录,是否有记住的凭据,或者将用户重定向到登录/注册屏幕

基础 Activity

一个特定于您的应用程序的 Activity,它包含适用于应用程序中所有 Activity 的初始化和生命周期回调代码。

关于android - 从 Application 对象中获取网络请求的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31099154/

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