前言:xutils真是一款不錯的android開發(fā)框架,在使用過程中減少了程序員很多的代碼量。不過其中也有一小部分需要注意的地方。其它使用請看xutils3詳細用法
1.注解注意事項
不像黃牛刀的注解,xutils的注解是在運行時(ps:我也不懂),用xutils注解點擊事件發(fā)現(xiàn),在頻繁的切換點擊兩個button的時候,只會響應(yīng)一個button的點擊,用findviewbyid的方式設(shè)置onclicklitsener,就不會有這個bug。
所以我們在用到點擊功能的時候,恰當?shù)挠靡幌伦⒔?,目前只發(fā)現(xiàn)頻繁點擊會出現(xiàn)問題,不一定其它地方埋著什么。
2.數(shù)據(jù)庫升級
當我們的業(yè)務(wù)在一天天完善的時候,之前建立的數(shù)據(jù)庫字段可能需要做修改。我們?nèi)缦屡渲脭?shù)據(jù)庫的代碼
DbManager.DaoConfig daoConfig =newDbManager.DaoConfig()
.setDbName("myapp.db")//設(shè)置數(shù)據(jù)庫名
xutils.db.setDbDir(newFile("/mnt/sdcard/"))//設(shè)置數(shù)據(jù)庫路徑,默認存儲在app的私有目錄
.setDbVersion(2)//設(shè)置數(shù)據(jù)庫的版本號
.setDbOpenListener(newDbManager.DbOpenListener() {//設(shè)置數(shù)據(jù)庫打開的監(jiān)聽
@Override
public void onDbOpened(DbManager db) {//開啟數(shù)據(jù)庫支持多線程操作,提升性能,對寫入加速提升巨大
db.getDatabase().enableWriteAheadLogging();
}
})
.setDbUpgradeListener(newDbManager.DbUpgradeListener() {//設(shè)置數(shù)據(jù)庫更新的監(jiān)聽
@Override
public void onUpgrade(DbManager db,intoldVersion,intnewVersion) {
}
}) .setTableCreateListener(newDbManager.TableCreateListener() {//設(shè)置表創(chuàng)建的監(jiān)聽
@Override
public void onTableCreated(DbManager db, TableEntity table){
Log.i("JAVA","onTableCreated:"+ table.getName());
}
});
我們可以在setDbVersion(x)填上任意數(shù)字,當然根據(jù)我們自己的實際情況
在需要改字段的時候,我們可以填x+n的數(shù)字,然后在
.setDbUpgradeListener(newDbManager.DbUpgradeListener() {//設(shè)置數(shù)據(jù)庫更新的監(jiān)聽
@Override
public void onUpgrade(DbManager db,intoldVersion,intnewVersion) {
//不需要之前的數(shù)據(jù)
db.delete(x.class);
//需要之前的數(shù)據(jù)
db.addColumn(x.class,"test");//新增的字段
db.saveOrUpdate(db.findall());//當前表中有這條isId則更新數(shù)據(jù),沒有則添加
}
})
感謝android,感謝開源