有时候在做一个APP的时候需要判断其是否是第一次启动从而实现一些自己需要的功能,这时候我们可以用SharedPreferences方法进行判断。
SharedPreferences是Android中最容易理解的一种数据存储技术,SharedPreferences处理的就是一个key-value(键值对)
SharedPreferences常用来存储一些轻量级的数据。
直接上代码,在代码中详细解释
// 用SP方法判断是否是第一次登陆
public class SplashActivity extends Activity {
<span style="white-space:pre"> </span>private SharedPreferences preferences;
<span style="white-space:pre"> </span>protected void onCreate(Bundle savedInstanceState) {
<span style="white-space:pre"> </span>super.onCreate(savedInstanceState);
<span style="white-space:pre"> </span>setContentView(R.layout.splash_activity);
<span style="white-space:pre"> </span>//实例化SharedPreferences对象
<span style="white-space:pre"> </span>//MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
<span style="white-space:pre"> </span>preferences = getSharedPreferences("count", MODE_APPEND);
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>//读取文件中的count,若没有初始值,设置为0
<span style="white-space:pre"> </span>int count = preferences.getInt("count", 0);
<span style="white-space:pre"> </span>//判断count是否为0,是0则进入欢迎界面,否则转到LoginActivity
<span style="white-space:pre"> </span>if (count == 0) {
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>//初始化Intent
<span style="white-space:pre"> </span>Intent intent = new Intent();
<span style="white-space:pre"> </span>//设置Intent的setClass属性,跳转到指定的Activity
<span style="white-space:pre"> </span>intent.setClass(getApplicationContext(), WelcomeActivity.class);
<span style="white-space:pre"> </span>//开启意图
<span style="white-space:pre"> </span>startActivity(intent);
<span style="white-space:pre"> </span>//结束当前Activity的生命周期
<span style="white-space:pre"> </span>finish();
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>/**Intent另外一种写法
<span style="white-space:pre"> </span> * Intent intent = new Intent(SplashActivity.this, WelcomeActivity.class);
<span style="white-space:pre"> </span>SplashActivity.this.startActivity(intent);
<span style="white-space:pre"> </span>SplashActivity.this.finish();
<span style="white-space:pre"> </span> */
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>} else {
<span style="white-space:pre"> </span>Intent intent = new Intent();
<span style="white-space:pre"> </span>intent.setClass(getApplicationContext(), LoginActivity.class);
<span style="white-space:pre"> </span>startActivity(intent);
<span style="white-space:pre"> </span>finish();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>//使用SharedPreferences.edit方法获得SharedPreferences.Edit对象
<span style="white-space:pre"> </span>Editor editor = preferences.edit();
<span style="white-space:pre"> </span>//通过SharedPreferences.Editor.putInt方法保存key-value对值,让count自动+1
<span style="white-space:pre"> </span>editor.putInt("count", ++count);
<span style="white-space:pre"> </span>//调用commit方法才能将key-value对真正保存在相应的文件中
<span style="white-space:pre"> </span>editor.commit();
<span style="white-space:pre"> </span>}
因为是做的整个APP的一部分,程序文件就不传了。
下一篇写一下第一次启动APP时实现几个图片滑动进入的效果。