Android程序跳过登录界面直接进入主界面(自动登录)
16lz
2021-01-25
上一篇文章是实现为android程序添加欢迎界面的介绍。这里介绍怎么实现登录过以后重新打开程序是跳过登录界面直接进入主界面。
首先是欢迎界面的代码
public class WelcomeActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.welcome); /** * 延迟3秒进入主界面 */ new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent=new Intent(WelcomeActivity.this,LoginActivity.class); startActivity(intent); WelcomeActivity.this.finish(); } },1000*3); }}
接下来是文章的主要内容。实现自动登录的关键是当程序从欢迎界面跳转到登录界面是,在登录界面还没有加载布局文件时判断是否登陆过,从而实现直接跳转到主界面。这里我们采用SharedPreferences来保存登录状态。代码如下:
public class LoginActivity extends Activity{ SharedPreferences sprfMain; SharedPreferences.Editor editorMain; Button login; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //在加载布局文件前判断是否登陆过 sprfMain= PreferenceManager.getDefaultSharedPreferences(this); editorMain=sprfMain.edit(); //.getBoolean("main",false);当找不到"main"所对应的键值是默认返回false if(sprfMain.getBoolean("main",false)){ Intent intent=new Intent(LoginActivity.this,MainActivity.class); startActivity(intent); LoginActivity.this.finish(); } setContentView(R.layout.login); login= (Button) findViewById(R.id.login); //这里只是简单用按键模拟登录功能 login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(LoginActivity.this,MainActivity.class); editorMain.putBoolean("main",true); editorMain.commit(); startActivity(intent); LoginActivity.this.finish(); } }); }}
接下来是实现注销后要重新进入登录界面
public class MainActivity extends AppCompatActivity { SharedPreferences sprfMain; SharedPreferences.Editor editorMain; Button exit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); exit= (Button) findViewById(R.id.exit); exit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //点击注销按键后调用LoginActivity提供的resetSprfMain()方法执行editorMain.putBoolean("main",false);,即将"main"对应的值修改为false resetSprfMain(); Intent intent=new Intent(MainActivity.this,WelcomeActivity.class); startActivity(intent); MainActivity.this.finish(); } }); } public void resetSprfMain(){ sprfMain= PreferenceManager.getDefaultSharedPreferences(this); editorMain=sprfMain.edit(); editorMain.putBoolean("main",false); editorMain.commit(); }}
这里我们就用SharedPreferences简单实现了android程序的自动登录功能。
更多相关文章
- Android(安卓)的网络编程(7)-检测网络是否可用
- Android程序优化之监听物理回退键,退出程序
- 关于AndroidManifest.xml中的android:debuggable
- Android(安卓)permission列表
- Android(安卓)绑定远程服务出现 Not Allowed to bind service
- 翻译引用 android的按键响应
- 使用BroadcastReceiver实现QQ没网时提示以及点击跳入WIFI设置界
- android studio3.1.4更新3.2.1版本问题汇总
- Android(安卓)9.0 (P版本) 原生的电池-Google省电模式