从单一意图转向不同的意图(最佳实践是什么?)



我正在构建一个应用程序,它有一个包含许多幻灯片的简介页面。一旦用户第一次浏览了介绍,他就会被引导到登录屏幕。一旦他登录(或注册),就会进入应用程序主页。只要用户没有注销,如果他点击应用程序图标,他就会直接进入主屏幕。

我使用Intro页面意图作为LAUNCHER活动,并使用sharedpreference保存"首次使用"和登录状态。通过测试用户是否已经登录或是第一次登录,我将引导他达到不同的目的。

所以我的问题是,在哪里最适合进行这种意向重定向?因为Intro页面有太多的片段和组件,将其设置为LAUNCHER活动,并有所有if-else语句来决定用户应该去哪里,我是否浪费了系统资源?因为如果用户已经登录,他将进入主页,而不会显示任何加载的应用程序介绍内容。

或者,创建一个空活动并将其设置为LAUNCHER活动,并在其中放入所有if-else语句,这是一种好的做法吗。因此,该应用程序不需要进入"繁重"的应用程序介绍页面。

PS:我已经在super.onCreate()之后的onCreate中声明了那些意向方向if-else语句;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        // Fullscreen
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        super.onCreate(savedInstanceState);
        // activity_first_usage is the container for all frames
        setContentView(R.layout.activity_first_usage);
        logger = new Logger(this);
        if (!logger.isFirstUsage()) {
            if (logger.hasTOKEN()) {
                // If user didn't log out, then he can stay in the app
                Intent home = new Intent(getApplicationContext(), Home.class);
                startActivity(home);
                finish();
            } else {
                // If this is not the first time user login in, no need to show the intro
                Intent directToSignIn = new Intent(getApplicationContext(), SignIn.class);
                startActivity(directToSignIn);
                finish();
            }
        } else {
            // If not, continue with the Intro and set usage status to used
            logger.setFirstUsage(false);
            }
...
}

我会告诉你的概念

使用splash,然后使用一个条件来检查用户的状态,例如:已经注册,新的,注册了,但仍然没有像明智的一样通过介绍

识别它

  • 现在您使用共享preff
  • 可以写入文件
  • 可以保留枚举值
  • 或者从服务器获取

更多:你可以考虑当用户卸载你的应用程序并重新安装时会发生什么。然后你需要做什么?取决于您。

一旦您在splash中识别出用户的状态给他们每个人写不同的意图

如果一个新的-显示你的介绍

如果没有-加载到您的主菜单

你需要决定,因为你知道的要求

希望这能有所帮助:)

最新更新