在我的Android应用程序中,如何在应用程序启动时运行特定功能?如果可能的话,我不想将它与特定的活动联系起来。将它绑定到特定活动的onCreate方法将不起作用,因为即使屏幕方向更改,onCreate也会被调用。启动应用程序时的Android事件处理程序
1
A
回答
3
对于每次启动应用程序时只运行一次的函数,您有几个选项。
- 您可以使用您想要运行的函数创建一个Singleton,并根据单例中的静态布尔标志对该函数进行调用。由于静态单例是任何给定Activity的外部参数,因此当您旋转屏幕并创建/销毁单个活动时,该标志不会恢复。尽管此解决方案优于Application子类,但您确实需要确保函数调用“mySingleton.runOnce(params ...)”位于构成您的Activity的入口点的每个Activity中(因此您可以从任何位置进入Intent外部应用程序)
- 您可以继承Application类并覆盖其onCreate方法。这不是首选的解决方案:从文档中,
通常不需要继承应用程序。在大多数情况下,静态单例可以以更模块化的方式提供相同的功能。如果你的单例需要一个全局上下文(例如注册广播接收者),那么检索它的函数可以被赋予一个上下文,该上下文在第一次构造单例时在内部使用Context.getApplicationContext()。
希望这会有所帮助!
相关问题
- 1. 手动添加应用程序启动事件处理程序的构造
- 2. 使用计时器时未启动事件处理程序
- 3. 是否有可能在事件处理程序启动时追踪事件处理程序的顺序?
- 4. HTML事件处理程序与React事件处理程序
- 5. 处理应用程序事件
- 6. 手动调用事件处理程序
- 7. Android应用程序启动
- 8. 启动Android应用程序
- 9. android - 在非主要活动中处理应用程序启动
- 10. 用Android应用程序启动应用程序或文件
- 11. 检测应用程序启动事件
- 12. 检测应用程序启动事件
- 13. 离子应用程序启动事件
- 14. ProgressBar与Android应用程序中的处理程序倒计时
- 15. Android:键盘事件处理程序
- 16. Android应用程序中的默认按键事件处理程序
- 17. WinForm应用程序事件处理程序
- 18. 如何从应用程序中删除事件处理程序?
- 19. 退出事件处理程序强制应用程序关闭
- 20. 在事件处理程序
- 21. JavaScript事件处理程序
- 22. 事件处理程序TabbedPanel
- 23. Javascript事件处理程序
- 24. BackgroundWorker事件处理程序
- 25. Elixir事件处理程序
- 26. jQuery事件处理程序
- 27. MsftDiscFormat2Data事件处理程序
- 28. MFC事件处理程序
- 29. Lua事件处理程序
- 30. C#事件处理程序
亚历山大,看来你很了解应用程序生命周期 - 这个建议是否适用于http://stackoverflow.com/questions/8292265/differentiate-processes-from-service-and-activity-on-android? – RealCasually