我有两个活动-活动A启动活动B,然后活动B从数据库加载一些东西,并可视化数据。完全初始化B中的所有内容需要一些时间(5-10秒)。
我的问题是,如果我按下B中的后退按钮,它就会破坏B活动(调用onDestroy)并返回到活动A。我仍然想返回活动A,但没有破坏B,因为如果再次启动B,我必须再次等待,才能完成所有事情(这很烦人)。这有可能吗?
谢谢你的帮忙!
发布于 2013-03-25 21:38:41
您可以使用Fragment,但是您真正想要做的是缓存信息。否则,您无论如何都会在设备旋转时重新加载(除非您使用Fragments和setRetainInstance来实现,但这可能会导致其他麻烦)。
我会在活动B的CursorLoader上使用onCreate。onLoadFinished缓存结果并设置UI。在随后的加载中,结果将被缓存,而您将放弃加载程序。更重要的是,如果底层数据库的结果发生变化,使用CursorLoader会提醒您。
发布于 2013-03-25 21:35:04
我认为你没有从正确的角度看待这个问题。
我想说的是,如果Android想要的话,你不能阻止B被销毁(因为要由它来处理这些活动)。但是,您可以选择在第三个类中移动所有长时间的初始化,这些类可以一直保持。所以你应该让这个阶段独立于你的B活动。
我认为将所有这些放在应用程序类的属性中是个好主意。
发布于 2013-03-25 21:30:22
也许你可以使用AndroidFragments
https://stackoverflow.com/questions/15625072
复制相似问题