在我的应用程序中,我有 2 个列表 Activity ,可以通过单击它们的项目来启动一个或另一个。
|--Activity1--| |--Activity2--| |--Activity1--|
| item11 | ->click-> | item21 | | item21 | ->click-> ...
| item12 | | item22 | ->click-> | item12 |
| item13 | | item23 | | item13 |
|-------------| |-------------| |-------------|
所以如果用户点击太多,他可以填充所有堆栈,系统将抛出 StackOverFlowException
不是吗?
当时我选择的解决方案是用 noHistory="true"
标记这 2 个 Activity ,但现在我很遗憾用户无法使用后退按钮在这 2 个 Activity 之间导航。
有人可以帮我找到更好的选择吗?
提前致谢
EDIT: to be more comprehensive, let's explain what is this activity workflow goal :
我有一个数据库,其中存储了与一年中的天数列表相关联的名称列表。一个名字可以链接到多天,一天中的同一件事可以链接到多个名字。
the database schema
| names |---< n, m >---| days |
所以这个 Activity 工作流是一种数据库导航器:
Activity1
是NameListActivity
,它显示链接到特定日期的姓名列表。Activity2
是DateListActivity
,它显示链接到特定名称的日期列表。
当用户点击 NameListActivity
的一个项目(name)时,DateListActivity
会启动,并显示链接到点击名称。
同样,当用户单击 DateListActivity
的一个项目(day)时,NameListActivity
将以链接到的名称列表启动单击的日期。
最佳答案
So if the user clicks too much, he can fill all the stack and the system will throw a StackOverFlowException isn't it ?
不,不会。
关于android - 困境: prevent StackOverflowException or improve user experience?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2027515/