public static SharePreferencesUtils getInstance() { if (instance == null) { synchronized (SharePreferencesUtils.class) { if (instance == null) instance = new SharePreferencesUtils(); } } return instance; }
public int getInt(String key, Integer defValue) { checkIsInit(); return sharedPreferences.getInt(key, defValue); }
@Override public void onCustomClick(@NonNull View view) { int count = SharePreferencesUtils.getInstance().getInt(key, 0) + 1; SharePreferencesUtils.getInstance().saveInt(key, count); loadVersionInfo(); } })
@Override public void onActivityStarted(Activity activity) { mFinalCount++; Log.e(TAG, "onActivityStarted: " + activity.getClass().getSimpleName() + ">>>" + mFinalCount); if (mFinalCount == 1 && canShowAdvertisement(activity.getClass())) { //如果是PhotoActivity时,在开启相机或者打开相册返回时不显示广告 //onActivityResult(int requestCode, int resultCode, Intent data)在onActivityStarted(Activity activity)方法前调用, //所以不能在onActivityResult(int requestCode, int resultCode, Intent data)中设置enableAdvertisement = true if (activity instanceof PhotoActivity && !((PhotoActivity) activity).enableAdvertisement){ ((PhotoActivity) activity).enableAdvertisement = true; return; } //说明从后台回到了前台 long lastShowAdvertisementTimeStamp = SharePreferencesUtils.getInstance().getLong(Configration.SP_ADVERTISEMENT_LAST_SHOW_TIME, 0L); long curTime = System.currentTimeMillis(); if ((curTime - lastShowAdvertisementTimeStamp > ADVERTISEMENT_INTERNAL_TIME)) { SharePreferencesUtils.getInstance().saveLong(Configration.SP_ADVERTISEMENT_LAST_SHOW_TIME, curTime); activity.startActivity(new Intent(activity, AdvertisementViewActivity.class)); } } }
private void showGuidePopupWindow(final String key) { final int showCount = SharePreferencesUtils.getInstance().getInt(key, 0); if (showCount < 3) { ImageView imageView = new ImageView(this);
@Override public void onCustomClick(@NonNull View view) { int count = SharePreferencesUtils.getInstance().getInt(key, 0) + 1; SharePreferencesUtils.getInstance().saveInt(key, count); Intent mIntent = new Intent(); mIntent.setClass(MainActivity.this, CustomToastActivity.class); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { mIntent.putExtra("transition", TransitionEnum.SLIDE.getLabel()); startActivity(mIntent, ActivityOptions.makeSceneTransitionAnimation(MainActivity.this).toBundle()); } else { startActivity(mIntent); } } })
@Override public void onCreate() { Log.e(TAG, "onCreate()"); super.onCreate(); InstanceManager.getInstance().init(this); //初始化SharedPreferences工具 SharePreferencesUtils.getInstance().init(this, "share_data"); //注册activity生命周期监听 if (BuildConfig.enableAdvertisementFeature) { registerActivityLifecycleCallbacks(activityLifecycleCallbacks); //启动界面不显示广告页 addToAdvertisementFilter(LaunchActivity.class); addToAdvertisementFilter(AdvertisementViewActivity.class); } }
/** * 后台下载广告图片。下载图片存放在当前应用的cache文件夹下,不需要SD的读写权限 */ private void downloadPictureIfNecessary(){ File directory = new File(Environment.getExternalStorageDirectory(), Environment.DIRECTORY_PICTURES); String[] splits = url.split(File.separator); String fileName = "advertisement" + File.separator + splits[splits.length - 1]; File pic = new File(directory, fileName); SharePreferencesUtils.getInstance().saveString(Configration.SP_ADVERTISEMENT_PICTURE, pic.getPath()); if (!pic.exists()){ DownloadEntity entity = new DownloadEntity(); entity.setUrl(url); entity.setDestinationDirectory(directory); entity.setSubPath(fileName); entity.setTitle("Download advertisement picture"); entity.setDesc(""); entity.setMimeType("image/jpeg"); fileDownloader.downloadFile(entity); } }
String picPathName = SharePreferencesUtils.getInstance().getString(Configration.SP_ADVERTISEMENT_PICTURE); if (new File(picPathName).exists()) loadPicture(new File(picPathName));
private void showGuideDialog(final String key) { final int showCount = SharePreferencesUtils.getInstance().getInt(key, 0); if (showCount >= 3) return;
private void showGuidePopupView(final String key) { final int showCount = SharePreferencesUtils.getInstance().getInt(key, 0); if (showCount >= 3) return;
public Float getFloat(String key, Float... defValue) { checkIsInit(); if (defValue.length > 0) return sharedPreferences.getFloat(key, defValue[0]); else return sharedPreferences.getFloat(key, 0.0f); }
public String getString(String key, String... defValue) { checkIsInit(); if (defValue.length > 0) return sharedPreferences.getString(key, defValue[0]); else return sharedPreferences.getString(key, ""); }
public Boolean getBoolean(String key, Boolean... defValue) { checkIsInit(); if (defValue.length > 0) return sharedPreferences.getBoolean(key, defValue[0]); else return sharedPreferences.getBoolean(key, false); }
public Long getLong(String key, Long... defValue) { checkIsInit(); if (defValue.length > 0) return sharedPreferences.getLong(key, defValue[0]); else return sharedPreferences.getLong(key, 0L); }
public void saveLong(String key, Long value) { checkIsInit(); sharedPreferences.edit().putLong(key, value).apply(); }
public void saveBoolean(String key, Boolean value) { checkIsInit(); sharedPreferences.edit().putBoolean(key, value).apply(); }
public void saveString(String key, String value) { checkIsInit(); sharedPreferences.edit().putString(key, value).apply(); }
public void saveFloat(String key, Float value) { checkIsInit(); sharedPreferences.edit().putFloat(key, value).apply(); }
public void delete(String key) { checkIsInit(); sharedPreferences.edit().remove(key).apply(); }