Android-高级POS开发

一、类

1.1基础BasicActivity需要继承AppCompatActivity和实现PosViewLoad接口

PosViewLoad接口如下所示:

public interface PosViewLoad {
void onBeforeViewLoad(BasicActivity activity,int resId);
void onAfterViewLoad(BasicActivity activity,int resId);
}

onBeforeViewLoad表示Activity加载前的回调

onAfterViewLoad表示加载后的回调

 

1.2Bundle SavedInstance冷却包的处理

protected void defSaveInstanceState(Bundle outState){
try{
Log.d("PPOSX", "defSaveInstanceState do.... on "+this.getClass().getName());
Field[] fields=this.getClass().getDeclaredFields();
for(Field f:fields){
PosSerializableFlag psf=f.getAnnotation(PosSerializableFlag.class);
if(psf!=null){
f.setAccessible(true);
Object obj=f.get(this);
if(obj!=null) {
String sav_key = this.getClass().getName().replace('.', '$') + "$" + f.getName();
if (obj instanceof Integer) {
outState.putInt(sav_key, (Integer) obj);
} else if (obj instanceof Double) {
outState.putDouble(sav_key, (Double) obj);
} else if (obj instanceof Long) {
outState.putLong(sav_key, (Long) obj);
} else if (obj instanceof String) {
outState.putString(sav_key, obj.toString());
} else {
outState.putSerializable(sav_key, (Serializable) obj);
}
}
}
}
}catch (Exception ex){
PosUtil.tryError(ex);
}
}

Activity中有@PosSerializableFlag 注解的属性,程序就会把值存放到冷却包处理。

posted @ 2022-01-11 10:52  周千  阅读(141)  评论(0编辑  收藏  举报