#Fridgeとは
AndroidのActivityの破棄復元対策のライブラリです。
AndroidのActivityやFragmentはシステムによって破棄-復元されるのでプログラマは必要に応じて値を退避・復元します。
自前で書くと onSavedInstanceState
で退避処理をして onCreate
などで復元処理をしますが、対象のフィールドが多いと似たような処理を大量に書く必要があって面倒なので、ライブラリを導入して楽をします。
有名なライブラリに Icepick があります。
Icepickとの違い
Icepickはアノテーションプロセッサで退避復元のためのコードを生成しますが、Fridgeはランタイムでアノテーションを解析して退避復元処理をします。
Icepickはサイズが大きいですが、Fridgeはたったの3ファイルですので軽量です。
##名前の由来
大昔のActivityの破棄・復元に関するBundleの変数名はsavedInstanceState
でなく、icicle
(つらら)でした。
有名なライブラリもIcepick
(アイスピック)でしたので、このライブラリは冷蔵庫を意味する Fridge
としました。
#導入
##Gradle
###プロジェクトのbuild.gradle
jitpackで配布しているので以下を追加
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
###モジュールのbuild.gradle
appなどのモジュールのdependenciesにライブラリを指定
dependencies {
implementation 'com.github.SaikoRobot:Fridge:0.2.0'
}
使い方
基本的に Icepickと同じです
public class MainActivity extends Activity {
private int nonStateValue;
@State
private int stateValue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Fridge.restoreInstanceState(this, savedInstanceState);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
Fridge.saveInstanceState(this, outState);
}
}
#source
Fridge