DataAutoAccess
自动存取Android Bundle中数据——给需要自动存取的变量添加注解,编译时会通过注解处理自动生成存取的代码
用处
- Activity或Service启动时自动取出Intent中的数据,并赋值给相应的field
- Activity或Fragment由于系统内存不足将要被杀死时,在onSaveInstanceState方法里存储数据,重启时在onCreate中取出数据并赋值给相应的field
使用
activity 中的使用:
public class ExampleActivity extends Activity{
@AutoAccess String name;
@AutoAccess String description;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//get data
DataAutoAccess.getData(this, savedInstanceState);
//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);
经过以上配置之后,DataAutoAccess会自动从intent中取出数据,给name和description变量赋值,而且当activity由于系统内存不足被杀死时,也会自动保存变量值,在onCreate时取出进行自动赋值。是不是感觉到挺Cool!
当然,实际使用过程中不会在每个activity都写一遍存取代码,所以可以把存取代码放在自己activity基类中,子activity只管数据的使用就可以,不需要关心数据存取。另外,DataAutoAccess的使用不局限于activity中,service和fragment中也可以使用,详细的使用和代码请前往Github DataAutoAccess。
项目代码
欢迎大家提议,我会继续优化,喜欢的就去github上star吧 O(∩_∩)O!
注:引用请注明作者