【问题标题】:What Activity Will Become MainActivity?什么Activity会成为MainActivity?
【发布时间】:2017-09-23 16:36:18
【问题描述】:

几周前我刚刚学习了android开发,我有一个简单的问题:

假设我想构建一个类似于 Facebook 的应用,它具有 LoginActivity 和 NewsFeedActivity。

如果用户已经登录,那么每当用户打开应用时,NewsFeedActivity 将成为默认屏幕。

那么,在这种情况下,MainActivity 的最佳方案是什么?是登录屏幕还是动态消息?

谢谢

【问题讨论】:

  • 您对主要活动有何看法?
  • 真正的方法是一个 MainActivity 与 NewsFeedFragment 和 LoginFragment =)
  • “真正的方法是一个带有 NewsFeedFragment 和 LoginFragment =) 的 MainActivity”你一定是在开玩笑
  • 在 MainActivity 上设置条件,如果用户已经登录,它将重定向到 NewsFeed,否则它将重定向到 LoginActivity

标签: android android-studio


【解决方案1】:

假设您有一个 LoginActivity,它会进行登录验证并重定向到新闻提要 (NewsFeedActivity)。

在您的 LoginActivity 内部,当用户尚未登录时,这将是您的 主要活动,您将使用 OAuth2 检查一些身份验证,基于此您判断用户是否有效。

OAuth2令牌是有有效期的,所以下次用户在令牌过期前登录时不再进行所有的认证检查,直接重定向到NewsFeedActivity。

如果用户有效,LoginActivity 将根据用户身份启动一个新活动。

这取决于您最终如何设计应用程序。没有一种方法可以做到这一点。

【讨论】:

    【解决方案2】:

    将 MainActivity 视为 App Luncher 活动。每当启动应用程序时,都应该调用它。

    在 MainActivity 中,您可以根据各种因素导航到其他活动。例如,如果他已经登录,则将他带到新闻源,如果没有,则将他带到登录活动。

    根据您将在 MainActivity 中停留的时间,您可以为其添加布局并将其用作启动屏幕。

    希望对你有帮助。

    【讨论】:

    • 好主意,兄弟。
    【解决方案3】:

    最好的办法是将登录活动设为启动器活动。 如果用户已登录,它会将您带到新闻提要活动。

    【讨论】:

      【解决方案4】:

      通常第一个屏幕我们称之为启动屏幕,我们在其中收集用户信息和我们需要的任何远程配置,仅在应用程序启动时第一次调用此屏幕,并且在成功登录后该流程进入登录屏幕后,您可以在共享中维护和标记偏好喜欢(布尔 isUserLoggedIn),当用户再次打开应用程序后,它会将您带到提要屏幕。

      Flow 就像启动屏幕(如果需要)->LoginScreen(如果未登录)->Feed 或 HomeSreen。

      如果用户已登录,则 SplashScreen->HomeScreen 直到用户未注销流程总是这样。

      我希望我能消除你的疑惑,如果你觉得有任何问题,你可以再问我。谢谢!

      【讨论】:

      • 我说的是正常练习,他关心的不是安全性,他的问题只是他如何实现心流!谢谢!
      • 没有拒绝您的答案,因此没有否决票,只是说其他人阅读了这些答案,而对于对安全一无所知的人,这可能会产生误导。而是准确而清晰地回答,以避免将来出现任何混淆。
      • 感谢您的关注,您能告诉我您是否曾经在 Preference 中使用过私人模式并尝试 root 您的手机并获取该数据????
      • 是的,我们有。这里有一个帖子供参考。 stackoverflow.com/questions/9244318/…
      • 我说的是你@Neil 不是我们吗?
      【解决方案5】:

      在大多数应用程序中,MainActivity 是 SplashActivity。当用户在您的 SplashActivity 上时,您可以根据您的业务逻辑决定将用户导航到正确的场景。

      【讨论】:

        【解决方案6】:

        在android中只有activity,每个activity可以是任何名字,包括MainActivity。您根本不应该关心 MainActivity 概念。你可以有两个活动,LoginActivity 和 NewsFeedActivity(也许还有一个活动叫做 SplashActivity,希望你已经对闪屏有所了解或者你可以查一下)。在新闻源中,每个选项卡都可以有不同的片段。

        【讨论】:

          【解决方案7】:

          对于我的正常实践,应用程序中有一个 BaseActivity,用于每个活动中始终需要的那些功能。 LoginActivity 和 NewFeedActivity 应该扩展 BaseActivity。启动应用时,您可能会有一个登陆 Activity,因此如果已登录则重定向到 NewFeedActivity,否则重定向到 loginActivity。

          【讨论】:

            猜你喜欢
            • 2011-10-10
            • 1970-01-01
            • 1970-01-01
            • 2021-01-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多