【发布时间】:2017-09-14 06:43:46
【问题描述】:
我们有Splash extends Activity,这是我们应用程序的起始活动。我们还有CustomApplication extends Application 类,它在调用应用程序进程时被调用。
现在我们有以下要求。 每当应用/进程启动时,调用Utils.doSomeDBWork()函数。
为此,我们将此函数调用放在Splash 和CustomApplication 类的onCreate() 中。我们将这个调用放在CustomApplication 中的原因是我们的应用程序可以通过deeplinks/notifications 启动,其中Splash 不会被调用。 但问题是,如果应用程序被杀死并通过Splash 启动,那么相同的函数将被调用两次。一个来自CustomApplication,另一个来自Splash。
所以基本上我的问题是,如果该函数已经从CustomApplication 调用,那么不要从Splash 调用该函数。我可以考虑通过使用一些静态变量或共享首选项来做到这一点。但不要认为这是一种干净的方式。有没有其他方法可以实现这一点,比如通过Intents 等传递一些信息?
【问题讨论】:
-
您可以为此使用事件总线。
-
为什么要从 Activity 中调用函数?仅从您的 Application 类中调用它还不够吗?
标签: android android-activity android-lifecycle