(android)如何在应用程序“启动”上做点什么?

时间:2009-09-08 20:19:56

标签: android

我知道Android的Activity模型与我通常认为的“app”有点不同。

当我的应用程序“启动”时,我想做一些事情(在这种情况下,检查服务器上的一些通知并显示它们是否可用)。有什么好办法可以实现这个目标?

我可能不希望在活动的OnCreate中执行此操作,因为每个活动都可以创建任意次数 - 代码将被调用的频率超过必要。

该应用程序还有多个入口点 - 我是否必须在每个活动中复制检查?

我正在考虑的是在Application对象中设置这个代码,以及跟踪它是否已被调用的标志 - 并且只是从每个Activity的onCreate()中调用它。

有更好或更“正确”的方法吗?

3 个答案:

答案 0 :(得分:10)

执行此操作的权利,Android批准的方式是:

  • 创建自己的android.app.Application
  • 覆盖onCreate方法
  • AndroidManifest.xml中,将android:name元素的application属性更改为您班级的名称
  • 现在,只要您的应用程序“已启动”(您的任何一个活动首次启动且没有其他实例存活),系统就会调用onCreate

您可能还会发现onTerminate方法很有用。

答案 1 :(得分:0)

您能否检查传递给onCreate()的捆绑包是否为null

不是null“如果在之前关闭之后重新初始化活动......”

答案 2 :(得分:0)

将它放入onCreate可能没什么坏处;当操作系统需要RAM用于其他操作时,活动才真正被销毁,而不是当用户转到另一个应用程序时。

编辑:您也可以拥有Service that runs when the device gets booted up。如果您还想检查应用程序何时启动,这可能是更好的选择,因为您只需要从Activity调用context.startService来运行检查。如果您不需要持久化,请确保在完成后停止它。