是否在 Android 上使用多个 Activity 实例?

Posted

技术标签:

【中文标题】是否在 Android 上使用多个 Activity 实例?【英文标题】:Whether or not to use multiple instances of an Activity on Android? 【发布时间】:2015-07-26 19:22:11 【问题描述】:

如果我有一个应用程序使用不同的数据重新填充 ListView 以响应用户选择项目。我应该启动一个新的 Activity 还是只更改数据,然后调用 Adapter.notifyDataSetChanged()?

似乎调用 notifyDataSetChanged() 更简单,并且可以最大限度地减少我的潜在活动数量(和内存使用),但我希望向上/后退导航工作。

我的应用程序类似于文件资源管理器,其中有一个文件夹列表,单击文件夹会更改列表以显示新文件夹的内容。如果用户单击一个文件夹,我希望向上/返回按钮将它们带回之前的文件夹。我已经使用单个活动实例并使用 notifyDataSetChanged() 实现了这一点,但无法让 Up/Back 按钮按需要工作。我想我需要以某种方式覆盖那些,或者使用同一活动的多个实例。任何方向都将不胜感激。

谢谢

【问题讨论】:

如果您需要在单个Activity中查看多个页面,您可以尝试fragments 【参考方案1】:

使用同一个 Activity 的多个实例是非常低效的。

要解决您的问题,最好的方法是使用片段的多个实例,每个实例代表树状结构中的一个文件夹。然后在您活动的onBackPressed() 中,您可以 在 backStack 中有片段时使用 popBackStack(),然后调用 super.onBackPressed() 以恢复默认行为。


【讨论】:

感谢您为我指明了正确的方向。我会试试这个。

以上是关于是否在 Android 上使用多个 Activity 实例?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 Unity 创建多个游戏并在单个 iOS 或 android 应用程序上运行?

Android on Back Pressed 多个子活动不起作用

一起学Android之Activity

unity工程是怎么在android上运行的

Android权限请求框架ZcxPremission

如何在phonegap上使用GCM处理android中的多个推送通知