【问题标题】:Best Practices for Activity Flow in Android ApplicationsAndroid 应用程序中活动流的最佳实践
【发布时间】:2011-01-21 14:41:22
【问题描述】:
试图了解我的 android 应用程序生命周期的最佳实践,以及活动如何融入其中。
例如,我有一个主要活动,有点像我的应用程序的“家”。但是,在启动时,我“可能”需要运行几个活动,具体取决于几种情况,其中一个是应用程序第一次运行。
从我的“家庭”活动中调用这些“启动”/家务活动是最佳做法吗?或者应用程序应该从“家务”活动开始,完成工作,然后完成()并开始“家”活动?
感谢您对此的建议,
--J
【问题讨论】:
标签:
android
android-activity
activity-lifecycle
【解决方案1】:
为了获得最佳用户体验(和更简洁的代码),您真的不应该链接活动。
对于您描述的场景(在首次启动时需要特定的选项布局)的最佳实践是在第一次创建“主页”活动时设置 SharedPreference。在同一个 Activity.onCreate() 调用中,您应该根据保存的值来决定您的 UI 将显示什么(例如,将适当的 View 的可见性设置为 View.GONE 或完全选择不同的 layout.xml)。
额外的好处:您可以使用应用程序的版本号(例如,LastOpenedVersion)重载假设的“已打开”SharedPreference,以便能够在用户下次打开您的升级后的“主页”活动。
【解决方案2】:
我会将您的LAUNCHER<intent-filter> 设置在用户最有可能从主屏幕访问的任何内容上。大概,这将是你的“家”活动。
在该活动的onCreate() 中,确定是否需要其他活动(例如,“首次运行”),然后调用startActivity()。当用户从那里按下 BACK(或者你 finish() 那个新活动)时,控制将返回到你的“家”活动。
【解决方案3】:
一种可能性是从初始屏幕Activity(而不是“家庭”屏幕)开始,然后确定接下来要启动什么。
您还应该考虑是否需要通过Activity 完成启动/管理工作。如果它不是用户与之交互的东西,那么您可以将该功能移至运行单独线程的Service。