2012-07-16 59 views
1

假设我的应用程序有很多进程。
我尝试运行一些init代码(实际上将应用程序上下文存储在一个静态变量中)Application onCreate()。但是我发现在某些进程中,onCreate()不会在同一进程中的其他代码之前运行,因此无法访问缓存的上下文。
我应该在哪里放置init代码(存储应用程序上下文),以便它必须在同一进程中的任何代码之前运行?在android中有没有初始化回调的过程?

+0

您的Application类中的'onCreate()'必须先于其他任何内容执行。请更详细地解释你认为你正在观察的内容。 – 2012-07-16 10:32:31

+0

当多进程时,这也是正确的吗? 现在,我的情况是某个进程不遵守这个规则... – Bear 2012-07-16 10:41:34

+0

如果你有多个进程,你的Application类的一个实例在**每个进程**创建时实例化。然后调用'onCreate()'。这是在创建任何其他组件之前完成的。 – 2012-07-16 10:44:33

回答

1

根据我们在聊天中的讨论,您遇到了问题,因为您正在尝试在某些助手类的静态初始化期间获取应用程序的上下文。我建议如下:

如果你的助手类只使用Android组件 那么到时候一个Android组件调用类 的Application.onCreate()将被称为 ,你可以从那里获取上下文。 你只需要等待,直到你从Android组件获得实际的调用才能获取上下文。

不要试图在辅助类实例化后尽快做到这一点。只有当你需要它时才做。

相关问题