java - 在构建 Android 库时,我可以使用什么模式来支持 Activity 中配置的回调
问题描述
我正在为我们的平台构建一个 Android 库,我正在努力解决如何让我的用户传递一个在库中特定时间被调用的函数。
该库启动一个活动,该活动有一些指向我的 https API 的服务类。(过度简化,但希望这已经足够详细了)
我想为我的用户提供一种方法来传递一个为 API 生成身份验证令牌的回调,允许他们自己生成它。也许界面可能看起来像String getAuthToken()
.
但是我怎样才能在不丢失状态的情况下做到这一点呢?当库启动时,我从单例开始(它为库的主要活动启动了一个 Intent),但是当进程被终止并且您尝试返回它时,应用程序当然会崩溃,单例是之前设置的活动开始了。
我是否遗漏了 Java 或 Android 中解决此问题的一些明显模式?
解决方案
为什么在单例中需要一个活动上下文?这看起来像是一个糟糕的设计。您不需要它来发出网络请求。
当您展示一个活动时,您可以控制它所涉及的所有生命周期。是的,当您旋转屏幕时,android会重新创建它,这让您感到非常痛苦,但为此,您可以使用ViewModels:
推荐阅读
- ios - 停止 Google 移动广告 SDK 在 iOS 上传输私人数据
- npm - gyp的MAC npm安装问题
- floating-point - 在 Nvidia Tesla K20c 上使用 torch.float32 而不是 torch.float64 是否有好处(在计算时间方面)?
- powershell - 将多个powershell GUI转换为exe文件
- mouse - 如何在 QB45 中检测 MouseWheel
- python - ubuntu pip install matplotlib 安装问题(python3.6.9)
- python - 熊猫 to_datetime 但在失败/强制时替换为固定值,保留“有意义的”NaN
- reactjs - 对象作为 React 子项无效 - 找到:带键的对象
- python - 正则表达式:提取带有大括号包围的单词的字符串,如果它包含文本
- c - C在另一个嵌套函数中调用嵌套函数