我正在设计与传感器相关的库,并允许其他应用集成此库并在自己的应用上监听特定的手势,例如摇晃/倾斜,并作为结果发生了一些事情,就像新的活动从图书馆出现一样。
但是图书馆的整合应该尽可能简单。
让开发人员创建自定义Application
类并使用以下方式初始化我的库的第一种方式。
MyLibrary lib = new MyLibrary(appContext);
lib.startListening();
但问题是我有与活动上下文相关的操作,如startingActivity或获取root视图。如果我在Application
类提供上下文(无法理解应用程序上下文中的活动)
其他方式是使用onCreate()
方法在应用内的每个活动中实现或注入此库。
lib.startListening(activityContext);
并取消注册onDestroy()
及相关方法。
lib.stopListening();
问题是我不喜欢第二条路,喜欢第一条路的简单性。第一种方式是否有任何我想念的东西?
[编辑]:第三种方式是扩展自定义活动类,但这对我来说几乎不可行,我不认为用户只是为了这么小的功能而集成我的库并改变常规的Activity
扩展操作到我不起眼的自定义Activity
课程。
[编辑]:我认为Service
是正确的方法。但仍然对替代模式感兴趣。