登录blackberry后将用户返回上一屏幕

登录blackberry后将用户返回上一屏幕,blackberry,login,Blackberry,Login,在我的应用程序中有一些受保护的屏幕。这意味着用户只有在登录后才能看到这些屏幕。 我想知道如何在用户登录后将其导航到上一个屏幕,从那里他重定向到登录屏幕 就像在网站中,用户希望看到一些需要登录的页面,然后管理员将其重定向到登录屏幕,当用户登录时,管理员将其重定向到他重定向到登录页面的页面 感谢为了澄清这一点,假设我们有一个LoginScreen,并且应用程序单独保持一个“登录”状态,可以在任何地方进行测试 在BlackBerry Java中实现这一点的最简单方法是推送LoginScreen并在进入

在我的应用程序中有一些受保护的屏幕。这意味着用户只有在登录后才能看到这些屏幕。 我想知道如何在用户登录后将其导航到上一个屏幕,从那里他重定向到登录屏幕

就像在网站中,用户希望看到一些需要登录的页面,然后管理员将其重定向到登录屏幕,当用户登录时,管理员将其重定向到他重定向到登录页面的页面


感谢

为了澄清这一点,假设我们有一个LoginScreen,并且应用程序单独保持一个“登录”状态,可以在任何地方进行测试

在BlackBerry Java中实现这一点的最简单方法是推送LoginScreen并在进入需要登录批准的屏幕之前检查结果。将LoginScreen作为模式屏幕推送(使用pushModalScreen),完成后,再次检查登录状态。如果未登录,则不推送新屏幕

另一种方法更为复杂,但意味着您将登录所需状态“保留在”屏幕中,它使用框架调用的两种方法作为ui基础结构的一部分。第一个是

onUiEngineAttached(boolean attached)
您将向任何需要用户登录的屏幕添加此方法。如果在附加标志设置为true的情况下调用此函数,则需要检查用户是否已登录。如果用户未登录,请按LoginScreen

第二种方法是

onExposed()
这会在屏幕暴露时调用,当然会在LoginScreen完成后调用。在此方法中,您可以检查用户是否已登录-如果未登录,则关闭屏幕。这假设您已经维护了屏幕堆栈,因此用户将返回到需要登录的屏幕之前的屏幕。有关这些方法的更多信息,请参阅文档

第三种选择实际上是方法1的变体。如果用户未登录,您可以创建“登录屏幕”(SuccessScreen),随时准备推送,然后还可以创建LoginScreen,这就是您要推送的内容。您将进入LoginScreen、SuccessScreen(可能还有FailureScreen)。然后,LoginScreen处理(如果登录OK)将自动弹出并按下应显示的SuccessScreen屏幕。如果失败,它会自动弹出并按下FailureScreen故障屏幕。这可能是最灵活的方法


您选择哪一个是设计问题,而不是编码问题。我认为所有这些都是可能的,并且都会完成任务

设置全局变量“is_login=false”。如果用户登录,则将其设置为true。当您要检查用户是否登录时,请检查此值并重定向到相应的屏幕。感谢您的评论。假设我有一个页面名“Show data”,用户希望看到此屏幕,但该页面需要用户登录。因此,我将他重定向到登录页面。我希望在用户登录后将他返回到“Show data”页面。我想你明白我的意思了。当你从“显示数据”页面转到“登录”页面时,不要关闭“显示数据”页面。登录成功后,只需关闭登录页面。因此,将显示“显示数据”页面。(Bcoz,它没有从堆栈中删除)好的。我可以这样做,但如果用户进入应用程序并进入登录页面而没有进入其他屏幕,那么我将重定向到他的个人资料页面。我应该为这两个活动创建单独的类吗。