当前位置:K88软件开发文章中心编程语言APP编程Android01 → 文章内容

12.4 DrySister看妹子应用(第一版)——4.添加数据缓存(加入SQLite)

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-12 6:28:21

1.一些BB上节我们为DrySister编写了一个异步图片加载缓存框架——SisterLoader(妹子加载器)成功的从网络加载的图片缓存到了磁盘和内存中,当我们断开网络后,仍然能够查看这些图片,但是,细心的你可能发现了一个很尴尬的地方,我们在有网的情况下进入APP,获取到图片相关的信息,比如URL,如果退出了,断网,然后进来,图片就加载不出来了,图片已经缓存了,但是我们没有图片对应的URL,就显得有些鸡肋了。所以我们需要对后台接口返回的数据进行存储,当每次加载的时候,把返回的数据信息存储到本地,然后当无网的时候,可以让他加载本地数据!所以本节我们为DrySister添加SQLite用于存储相关数据。任务都说清楚了,搞起~2.开始编写程序在develop上开辟一个新的db分支,来完成本节相关代码的编写。首先,我们添加一个用来判断网络状态的工具类:NetworkUtils.java,就一个简单的判断网络是否可用的方法~这里我们还需要在AndroidManifest.xml里加一个权限:android.permission.ACCESSNETWORKSTATE"的权限!public class NetworkUtils { /** 获取网络信息 */ private static NetworkInfo getActiveNetworkInfo(Context context) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); return cm.getActiveNetworkInfo(); } /** 判断网络是否可用 */ public static boolean isAvailable(Context context) { NetworkInfo info = getActiveNetworkInfo(context); return info != null && info.isAvailable(); }}接着定义一个数据库字段常量的类:TableDefine.java,在里面把数据库名,字段写上:public class TableDefine { public static final String TABLE_FULI = "fuli"; public static final String COLUMN_ID = "id"; public static final String COLUMN_FULI_ID = "_id"; public static final String COLUMN_FULI_CREATEAT = "createAt"; public static final String COLUMN_FULI_DESC = "desc"; public static final String COLUMN_FULI_PUBLISHEDAT = "publishedAt"; public static final String COLUMN_FULI_SOURCE = "source"; public static final String COLUMN_FULI_TYPE = "type"; public static final String COLUMN_FULI_URL = "url"; public static final String COLUMN_FULI_USED = "used"; public static final String COLUMN_FULI_WHO = "who";}再接着编写数据库的创建类:SisterOpenHelper.java,在里面完成数据库的创建public class SisterOpenHelper extends SQLiteOpenHelper{ private static final String DB_NAME = "sister.db"; //数据库名 private static final int DB_VERSION = 1; //数据库版本号 public SisterOpenHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String createTableSql = "CREATE TABLE IF NOT EXISTS " + TableDefine.TABLE_FULI + " (" + TableDefine.COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + TableDefine.COLUMN_FULI_ID + " TEXT, " + TableDefine.COLUMN_FULI_CREATEAT + " TEXT, " + TableDefine.COLUMN_FULI_DESC + " TEXT, " + TableDefine.COLUMN_FULI_PUBLISHEDAT + " TEXT, " + TableDefine.COLUMN_FULI_SOURCE + " TEXT, " + TableDefine.COLUMN_FULI_TYPE + " TEXT, " + TableDefine.COLUMN_FULI_URL + " TEXT, " + TableDefine.COLUMN_FULI_USED + " BOOLEAN, " + TableDefine.COLUMN_FULI_WHO + " TEXT" + ")"; db.execSQL(createTableSql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}再接着,我们需要编写一个数据库的操作类,就是做增删改查,分页查询等操作的类,这里我们把这个类写成单例的:SisterDBHelper.java,里面的编写的方法有这些:具体代码:public class SisterDBHelper { private static final String TAG = "SisterDBHelper"; private static SisterDBHelper dbHelper; private SisterOpenHelper sqlHelper; private SQLiteDatabase db; private SisterDBHelper() { sqlHelper = new SisterOpenHelper(DrySisterApp.getContext()); } /** 单例 */ public static SisterDBHelper getInstance() { if(dbHelper == null) { synchronized (SisterDBHelper.class) { if(dbHelper == null) { dbHelper = new SisterDBHelper(); } } } return dbHelper; } /** 插入一个妹子 */ public void insertSister(Sister sister) { db = getWritableDB(); ContentValues contentValues = new ContentValues(); contentValues.put(TableDefine.COLUMN_FULI_ID,sister.get_id()); contentValues.put(TableDefine.COLUMN_FULI_CREATEAT,sister.getCreateAt()); contentValues.put(TableDefine.COLUMN_FULI_DESC,sister.getDesc()); contentValues.put(TableDefine.COLUMN_FULI_PUBLISHEDAT,sister.getPublishedAt()); contentValues.put(TableDefine.COLUMN_FULI_SOURCE,sister.getSource()); contentValues.put(TableDefine.COLUMN_FULI_TYPE,sister.getType()); contentValues.put(TableDefine.COLUMN_FULI_URL,sister.getUrl()); contentValues.put(TableDefine.COLUMN_FULI_USED,sister.getUsed()); contentValues.put(TableDefine.COLUMN_FULI_WHO,sister.getWho()); db.insert(TableDefine.TABLE_FULI,null,contentValues);

[1] [2] [3] [4]  下一页


12.4 DrySister看妹子应用(第一版)——4.添加数据缓存(加入SQLite)