我知道Android的Activity模型与我通常认为的“应用程序”有点不同。
当我的应用程序“启动”时,我想做一些事情(在这种情况下,检查服务器上的一些通知,并显示它们(如果可用))。什么是实现这一点的好方法?
我可能不想在活动的OnCreate中执行此操作,因为每个活动都可以创建任意次数-代码将被调用的次数超过必要的次数。
该应用程序也有多个入口点-我是否必须在每个活动中重复检查?
我想做的是在Application对象内设置这段代码,沿着一个标志来跟踪它是否已经被调用过--然后从每个Activity的onCreate()调用它。
有没有更好或更“合适”的方法来做到这一点?
3条答案
按热度按时间fnatzsnv1#
正确的,Android认可的方法是:
android.app.Application
类onCreate
方法AndroidManifest.xml
中,将application
元素的android:name
属性更改为类的名称onCreate
。您可能还会发现
onTerminate
方法很有用。dpiehjr42#
您能检查一下传递给
onCreate()
的包是否为null
吗?它不是
null
“如果Activity在之前关闭后重新初始化...”nr7wwzry3#
把它放在onCreate中可能没有什么坏处; Activity实际上仅在操作系统需要RAM用于其他用途时被销毁,而不是在用户转到另一个应用程序时。
编辑:您也可以有一个Service that runs when the device gets booted up。如果您还想检查应用何时启动,这可能是一个更好的选择,因为您只需要从Activity调用context.startService来运行检查。如果您不需要它是持久的,请确保在它完成时停止它。