好的,我做了一个小项目来模拟你现在的情况。下面的代码中我会省略掉导入部分。另外请读完整段代码和注释,我写这些不是让你跳过它们的。我们将称这几个类为splash、login、page1、page2和page3。在你的splash类中,在onCreate()方法之前,让我们加入一些东西。
package com.test.jeets;
public class splash extends Activity {
public static boolean loggedin = false;
public static int sdk = new Integer(Build.VERSION.SDK).intValue();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
}
}
现在这就是你的启动画面!完成了!对于登录界面,我们需要确保它不能返回到启动画面,而是在按下返回键时退出应用程序。那很简单!让我们重写返回按钮并使用
moveTaskToBack(true)
即可。
package com.test.jeets;
public class login extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (splash.sdk < 5 && keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
onBackPressed();
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
moveTaskToBack(true);
return;
}
@Override
public void onRestart() {
super.onRestart();
if(splash.loggedin == false){
Intent i = new Intent(login.this, splash.class);
startActivity(i);}
}
}
现在,这个任务已经完成了!让我们转到您的第一个页面(即登录后跳转的页面),并在
onCreate()
方法中添加一行代码。
splash.loggedin = true
您可能需要考虑让用户退出此页面时也注销他们的登录状态。这不是必需的,但肯定可行。
最后一件要做的事情是在用户使用注销按钮注销时将该变量设置为false。因此,在按钮的代码中,在再次启动登录活动之前,只需添加splash.loggedin = false;
。现在,当用户单击按钮时,它将注销用户,将变量设置为false,并将其带到登录屏幕。就像我说的,我用一个简单的布局和基本的活动切换进行了测试,对我来说效果很好。