Bilibili/xpref

Name: xpref

Owner: bilibili

Description: A SharedPreferences' wrapper that truly supported sharing data across multi-process

Created: 2017-12-25 17:43:41.0

Updated: 2018-05-23 07:36:36.0

Pushed: 2017-12-27 15:40:22.0

Homepage:

Size: 163

Language: Kotlin

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Xpref

A SharedPreferences' wrapper that truly supported sharing data across multi-process

Principle

ContentProvider is designed to provide content between multiple applications that means it supported sharing data between multi-process. Use it to wrap the SharedPreferences can make the latter truly cross-process sharing data

Usage

Add dependency to your gradle script:

ndencies {
implementation 'com.bilibili.lib:x-pref:1.2'

Note that this library is written with kotlin 1.2.10.

  1. Gets the default SharedPreferences which is typically used in the Settings of an APP.
f.getDefaultSharedPreferences(context)
  1. Gets a SharedPreferences with specific named.
name = "awesome"
f.getSharedPreferences(context, name)
  1. Extension in Kotlin.

You can declare extension functions in somewhere on your need for better convenience usage like following:

<T: ContextWrapper> T.xpref() = Xpref.getDefaultSharedPreferences(this)

<T: ContextWrapper> T.xpref(name: String) = Xpref.getSharedPreferences(this, name)
n Activity
s AnActivity : Activity() {
private fun getPreferences() = this.xpref("awesome")


n Service
s AService : Service() {
private fun getPreferences() = this.xpref("awesome")

The other usage is the same as normal SharedPreferences.

Have fun!


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.