有一种方法可以防止在导航回来时重新加载活动例如,如果某些活动从数据库加载数据,那么用户每次导航到此活动时等待加载数据都不是一件好事。 / p>
答案 0 :(得分:1)
关于防止重新加载活动的可能性的简短回答:否。至少在我看来,您应该始终设计应用程序来处理Activity生命周期。当设备的方向改变时,也会发生重新加载(onPause-> onDestroy-> onCreate-> onResume)。每次创建Activity时都会发生CPU和/或内存密集型任务,这很可能会导致用户体验不佳。
一种解决方案可能是让外部类处理数据库加载,并让类可以作为单例访问。我知道这是许多开发人员的劝阻,但与此同时我非常肯定已经读过它在许多Android特定情况下都可以接受。
或者你可以有一个类扩展应用程序。然后Application类可以保留任何会话相关数据。这也可以独立于当前显示的活动来访问数据。
我确信还有很多其他选择,但这是最初想到的。
答案 1 :(得分:0)
在调用活动时设置您要使用的意图类型。 Here is the documentation
对于您的情况,FLAG_ACTIVITY_REORDER_TO_FRONT可能有帮助。
但是在再次阅读您的问题时,我认为您希望保持数据不变并且不想再次加载它。在这种情况下,请扩展Application类。将数据保存在此扩展类的变量中,并在任何您想要的地方使用它。
答案 2 :(得分:0)
您可能希望特别研究Activity Lifecycle Recreating an Activity
通过将活动存储在Bundle onSaveInstanceState(Bundle)方法中,然后使用onRestoreInstanceState从同一Bundle
恢复,可以保存第一次显示活动后收集或创建的所有数据。捆绑)方法。