2011-11-28 116 views
1

在我的Android应用程序中,如何在应用程序启动时运行特定功能?如果可能的话,我不想将它与特定的活动联系起来。将它绑定到特定活动的onCreate方法将不起作用,因为即使屏幕方向更改,onCreate也会被调用。启动应用程序时的Android事件处理程序

回答

3

对于每次启动应用程序时只运行一次的函数,您有几个选项。

- 您可以使用您想要运行的函数创建一个Singleton,并根据单例中的静态布尔标志对该函数进行调用。由于静态单例是任何给定Activity的外部参数,因此当您旋转屏幕并创建/销毁单个活动时,该标志不会恢复。尽管此解决方案优于Application子类,但您确实需要确保函数调用“mySingleton.runOnce(params ...)”位于构成您的Activity的入口点的每个Activity中(因此您可以从任何位置进入Intent外部应用程序)

- 您可以继承Application类并覆盖其onCreate方法。这不是首选的解决方案:从文档中,

通常不需要继承应用程序。在大多数情况下,静态单例可以以更模块化的方式提供相同的功能。如果你的单例需要一个全局上下文(例如注册广播接收者),那么检索它的函数可以被赋予一个上下文,该上下文在第一次构造单例时在内部使用Context.getApplicationContext()。

希望这会有所帮助!

+0

亚历山大,看来你很了解应用程序生命周期 - 这个建议是否适用于http://stackoverflow.com/questions/8292265/differentiate-processes-from-service-and-activity-on-android? – RealCasually