最近我创建了一个社交应用程序。我没有使用fragment,项目快完成了。我有几个活动,例如用户配置文件、关注者、关注者活动。
通常情况下它工作得很好。但是,如果用户单击 UserA UserProfile 活动 -> 然后单击 A 的关注者 -> 选择 UserB Userprofile 活动 -> 单击 B 的关注者活动 -> 选择 UserC Userprofile 活动...
在此循环中,应用程序会变得相当慢,因为它同时打开了太多活动,并且返回堆栈保存了所有这些活动。
我只是想知道针对这种情况是否可以做一些优化?因为除了用户信息内容之外,UserProfile 活动布局始终相同。是否可以为每个活动使用 Fragment,即使不同的活动会按顺序一一出现?
Thanks!
您应该以不同的方式构建它。你应该只拥有一个UserProfileActivity
在堆栈中。如果您已经拥有UserProfileActivity
对于堆栈中的用户 A,并且您想要显示UserProfileActivity
对于用户B,只需拨打startActivity()
for UserProfileActivity
with Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
并传递一些额外的内容来表明Activity
应向用户 B 展示。对您的所有活动使用相同的概念。
为了确保 BACK 按钮导航正常工作,您需要覆盖onBackPressed()
并弄清楚什么Activity
需要显示以及使用什么数据。然后打电话startActivity()
并且还设置了Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
并提供额外服务,以便Activity
将显示正确的数据。
为了帮助跟踪您在导航中的位置,您可能需要创建一个存储在static
某处变量。每个项目都会表明什么Activity
正在显示以及使用什么数据。每次推出新产品时Activity
,您将一个新项目推入此堆栈,每次用户按 BACK 键时,您都会将顶部项目从堆栈中弹出,然后查看其下面的项目以确定要执行的操作Activity
启动以及在附加内容中发送哪些数据。
通过这种方案,用户可以整天点击,并且每个项目永远不会有多个实例Activity
,但用户仍然可以一路导航回来。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)