DataAutoAccess
自動存取Android Bundle中數(shù)據(jù)——給需要自動存取的變量添加注解,編譯時會通過注解處理自動生成存取的代碼
Usages
- Activity啟動時自動取出Intent中的數(shù)據(jù),并賦值給相應(yīng)的field
- Activity由于系統(tǒng)內(nèi)存不足將要被殺死時,在onSaveInstanceState方法里存儲數(shù)據(jù),Activity重啟時在onCreate中取出數(shù)據(jù)并賦值給相應(yīng)的field
Use
public class ExampleActivity extends Activity{
@AutoAccess String name;
@AutoAccess String description;
@Override protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//get data
Bundle data;
data = getIntent().getExtras();
//judge data source
if (data == null) {
data = savedInstanceState;
}
DataAutoAccess.getData(this, data);
//TODO use fields...
}
@Override protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//save data
DataAutoAccess.saveData(this, outState);
}
}
Intent傳參形式:
Intent intent = new Intent(this, TestActivity.class);
intent.putExtra("name", "DataAutoAccess");
intent.putExtra("description", "Android bundle data auto access.");
startActivity(intent);
經(jīng)過以上配置之后,DataAutoAccess會自動從intent中取出數(shù)據(jù),給name和description變量賦值,而且當(dāng)activity由于系統(tǒng)內(nèi)存不足被殺死時,也會自動保存變量值,在onCreate時取出進(jìn)行自動賦值。是不是感覺到挺Cool!
Code
歡迎大家評論,喜歡的就去github上star吧 O(∩_∩)O