我正在构建一个应用程序,它有一个包含许多幻灯片的简介页面。一旦用户第一次浏览了介绍,他就会被引导到登录屏幕。一旦他登录(或注册),就会进入应用程序主页。只要用户没有注销,如果他点击应用程序图标,他就会直接进入主屏幕。
我使用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中识别出用户的状态给他们每个人写不同的意图
如果一个新的-显示你的介绍
如果没有-加载到您的主菜单
你需要决定,因为你知道的要求
希望这能有所帮助:)