Android应用程序对象的生命周期

10

我找不到应用程序对象(扩展Application)的生命周期。 例如,如果我有一个通过Alarm调用的广播接收器,应用程序中的方法会被调用吗?还是一切都与应用程序无关? 如果我在应用程序中实例化了一个datahelper并从广播接收器调用它,它是否可用? 应用程序对象的生命周期是什么时候销毁的? 在使用Alarms时何时调用它?当Activity不在前台时,应用程序对象会发生什么变化? 谢谢!Guillermo。

1个回答

14

换个角度看问题:在任何其他事物之前,有一个 Application。它在你的BroadcastReceiver, Activity实例和Service实例创建之前就已经被创建了。不管是否有任何应用程序在前台运行,它都存在。当你所有的Activity实例都销毁、你的BroadcastReceiver退出并且你的Service实例终止时,该应用程序将被终止。但不能保证它会被杀死,因为当操作系统决定你的应用必须结束时,Application是最后一个关闭的。


如果应用程序关闭,那么闹钟会定期触发,执行某些操作,然后终止。每次闹钟响起时,都会创建应用程序对象,当处理结束时,应用程序对象就会被销毁,对吗?因此,如果我设置一个闹钟,它在一个时间段内每隔5秒钟不断触发,那么应用程序对象和其中的所有内容都将在每5秒钟创建和销毁一次? - polonskyg
Application不一定会立即终止。所以,不,它可能会在多次调用中“存活”。但也可能不会:)。没有保证。 - Brian Dupuis
如果每次闹钟触发时都创建Application对象,是否有一种方法可以确定Application是以这种方式创建的,而不是作为常规应用程序启动的结果?在我的情况下,每当我们收到推送消息供我的BroadcastReceiver处理时,就会创建我的Application对象,但是在Application.onCreate()中,我们执行昂贵的逻辑,我只想在为常规应用程序启动创建Application时执行它,而不仅仅是推送消息。 - RealCasually
请参考以下链接:http://stackoverflow.com/questions/8292265/differentiate-application-object-from-activity-and-broadcastreceiver-on-android - Dori

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接