android - Android - 以无代码方式集成您的库以显示视图
问题描述
我已经读过,通过在库的清单上有一个提供程序,您可以将您创建的库集成到应用程序中,而无需强制它们编写任何集成代码。
这怎么可能?为了显示对话框或按钮,您将在哪里获得对上下文或 FragmentManager 的引用?
解决方案
我已经读过,通过在库的清单上有一个提供程序,您可以将您创建的库集成到应用程序中,而无需强制它们编写任何集成代码。
并不真地。将其表述为“通过<provider>
在库的清单中包含一个,您可以在不强制应用程序开发人员编写任何初始化代码的情况下初始化库”会更准确。
初始化!=集成。
这怎么可能?
ContentProvider
当应用程序的进程启动时,所有注册的实例都会被初始化,甚至onCreate()
在Application
被调用之前。通常,这是一个错误(增加启动成本),但如果做得正确,它可能是一个特性(允许库自初始化)。
为了显示对话框或按钮,您将在哪里获得对上下文或 FragmentManager 的引用?
应用程序开发人员会调用您提供的一些 API。
推荐阅读
- r - 如何通过比较其他两个变量来创建新变量
- c++ - 如何在 Windows 7 中使用 D3D11 在标题栏中进行渲染?
- google-apps-script - Google App 脚本项目执行中的未知状态
- vb.net - 每个控件 var 的空异常
- r - Read .txt file into R with tab delimiter and every column starting with non-numeric value
- android - 从 Android 服务内部启动的 Singleton 实例是否会作为服务工作?
- docker - 从第 3 方存储库中检索 Docker 映像标签
- python - 代码未在hackerrank中输出值
- javascript - 使用 $set 抓取 jquery 变量并将其推送到 vue 数组对象
- c# - 如何在 xsd 中向 ComplexType 元素添加自定义属性?