android 如何在应用程序启动时运行回调?

8ehkhllq  于 2022-12-09  发布在  Android
关注(0)|答案(3)|浏览(268)

我知道Android的Activity模型与我通常认为的“应用程序”有点不同。
当我的应用程序“启动”时,我想做一些事情(在这种情况下,检查服务器上的一些通知,并显示它们(如果可用))。什么是实现这一点的好方法?
我可能不想在活动的OnCreate中执行此操作,因为每个活动都可以创建任意次数-代码将被调用的次数超过必要的次数。
该应用程序也有多个入口点-我是否必须在每个活动中重复检查?
我想做的是在Application对象内设置这段代码,沿着一个标志来跟踪它是否已经被调用过--然后从每个Activity的onCreate()调用它。
有没有更好或更“合适”的方法来做到这一点?

fnatzsnv

fnatzsnv1#

正确的,Android认可的方法是:

  • 创建您自己的android.app.Application
  • 覆写onCreate方法
  • AndroidManifest.xml中,将application元素的android:name属性更改为类的名称
  • 现在,每当您的应用“启动”时(您的任何一个Activity是第一次启动,并且没有其他示例处于活动状态),将调用onCreate

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

dpiehjr4

dpiehjr42#

您能检查一下传递给onCreate()的包是否为null吗?
它不是null“如果Activity在之前关闭后重新初始化...”

nr7wwzry

nr7wwzry3#

把它放在onCreate中可能没有什么坏处; Activity实际上仅在操作系统需要RAM用于其他用途时被销毁,而不是在用户转到另一个应用程序时。
编辑:您也可以有一个Service that runs when the device gets booted up。如果您还想检查应用何时启动,这可能是一个更好的选择,因为您只需要从Activity调用context.startService来运行检查。如果您不需要它是持久的,请确保在它完成时停止它。

相关问题