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

时间:2016-07-29 02:03:19

标签: android android-intent

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

我使用Intro页面意图作为LAUNCHER活动并使用sharedpreference来保存首次使用'并登录状态。通过测试用户是否已登录或第一次使用用户,我指导他进行不同的意图。

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

或者,创建一个空活动并将其设置为LAUNCHER活动并将所有if else语句放入其中是一个好习惯。因此,该应用程序不需要去重做' app intro page。

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);
            }
...
}

1 个答案:

答案 0 :(得分:0)

生病告诉你这个概念

使用启动并使用条件来检查用户的状态,例如:已经注册,新注册,注册但仍然没有明智地进行介绍

识别它

  • 现在你使用共享preff
  • 可以写文件
  • 可以保留枚举值
  • 或从服务器等处获取..
  

更多:您可以考虑当用户卸载您的应用并重新安装时会发生什么。那么您需要做什么?由你决定。

一旦确定了启动中的用户状态 为每个人写不同的意图

如果是新的 - 显示您的介绍

如果没有 - 加载到主菜单

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

希望这有点帮助:)