我知道Android的Activity模型与我通常认为的“app”有点不同。
当我的应用程序“启动”时,我想做一些事情(在这种情况下,检查服务器上的一些通知并显示它们是否可用)。有什么好办法可以实现这个目标?
我可能不希望在活动的OnCreate中执行此操作,因为每个活动都可以创建任意次数 - 代码将被调用的频率超过必要。
该应用程序还有多个入口点 - 我是否必须在每个活动中复制检查?
我正在考虑的是在Application对象中设置这个代码,以及跟踪它是否已被调用的标志 - 并且只是从每个Activity的onCreate()中调用它。
有更好或更“正确”的方法吗?
答案 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来运行检查。如果您不需要持久化,请确保在完成后停止它。