在我的Android应用程序中,我有一个DefaultApplication类,它扩展了android.app.Application ,并且在onCreate()绑定了一些服务,这些服务将被我的其他活动在这个应用程序中使用。 另外我有一个BroadcastReceiver监听和接收C2DM消息。 当这个接收器在应用程序没有运行的时候收到一个消息,它会触发一个显示即将到来的消息的对话框,它将启动我的应用程序的一个Activity。 我的问题是,当我开始一个没有与DefaultApplication交互的活动时,我的DefaultApplication的onCreate()会被调用,因为该应用程序的Activity已经启动了? 这里是我的DefaultApplication的定义和清单: public class DefaultApplication extends Application { @Override public void onCreate() { super.onCreate(); doBindService(); } void doBindService() { // Establish a connection with the service. We use an explicit // class name because we want a specific service implementation that // we know will be running in our own process […]
我正在开发Android应用程序一段时间,并遵循了很多有关活动生命周期和应用程序生命周期的文章。 我知道Activity.finish()方法调用Activity.finish()的方式,并从堆栈中删除活动,我想它指向操作系统和垃圾回收器,他可以“做他的诀窍”和自由记忆,当它发现这是一个好时机这样做…. 我来到这个职位 – 是否放弃了一个应用程序? 并阅读Mark Murphy的回答。 这让我对finish()方法究竟做了什么感到困惑。 有没有机会我打电话finish()和onDestroy()不会被调用?
我正在研究一个相当复杂的Android应用程序,这个应用程序需要大量关于应用程序的数据(总共大约500KB–对于移动设备来说这么大?)。 从我所知道的情况来看,应用程序(在活动中,更准确地说)的任何方向变化都会导致活动的彻底破坏和重新创建。 根据我的发现,Application类没有相同的生命周期(即,对于所有意图和目的,总是实例化)。 将状态信息存储在应用程序类中,然后从Activity引用它,或者由于移动设备上的内存限制,通常不是“可接受的”方法? 我真的很感谢在这个话题上的任何建议。 谢谢!