多用户应用程序管理每个用户的后栈

时间:2011-07-01 13:39:52

标签: android

大家

我在多用户应用程序(即REST客户端)上工作,因此当您启动它时,您看到的第一个活动是LoginActivity。

例如,我有十个活动和LoginActivity,我可以导航,例如下一步: LoginActivity - >活动1 - >活动3 - > Activity8(注销) - > LoginActivity。 我可以从每项活动中退出。

可能的下一个情况:
1)user1登录:LoginActivity - >活动1 - > .. 活动7(退出) - > LoginActivity。
2)user2登录:LoginActivity - >活动1 - > .. Activity4(注销) - > LoginActivity。
3)user1再次登录:LoginActivity - >的 Activity7 .. 并且如果可能的话,user1必须自然地使用他的最后一个返回堆栈转到Activity7。

用户必须只看到与他相关的数据。

有没有机制来管理所有这些东西? 我的意思是,android平台是否支持这样的多用户应用程序,或者手动恢复/存储后备堆栈。

还有其他想法吗?

P.S。我找到了解决方法,为每个用户使用SharedPrefences只存储他登录的他的数据和商店活动。但对我来说似乎不是 android方式

UPD:我做了一些研究,发现了两个意图标志来启动新的 任务与它的背堆历史: (FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_MULTIPLE_TASK)

所以,据我所知,在上面的示例中,LoginActivity是 像javadoc中提到的“顶级发射器”之类的东西 FLAG_ACTIVITY_MULTIPLE_TASK。

但是,我找不到顶级发射器的文件/样本;如何管理 任务按其ID。 请帮助处理顶级启动器示例或管理任务api。

UPD2:我发现一些函数如何按任务ID操作任务:
public void moveTaskToFront(int taskId,int flags);
但它只是自API级别11以来 但是我使用7级,是否有任何技术如何将任务移动到前台?

1 个答案:

答案 0 :(得分:0)

没有办法管理任务,因为“它不是真正的tasks应该如何运作。它们的全部意义在于它们完全是分开的,不相关的东西” 我解决了这个solution中受到启发的类似问题。在此解决方案中,您会跟踪正在使用的activities,因此我认为这符合您的想法。我不认为你会使用标签系统,所以丢弃底部。重要的部分是ActivityGroup管理。

我希望这会有所帮助。