package dw.dw.com.greendaosplite;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import java.util.List;
import dw.dw.com.greendaosplite.greendao.DaoMaster;
import dw.dw.com.greendaosplite.greendao.DaoSession;
public class SqUtils {
private static SqUtils ourInstance;
private SQLiteDatabase db;
private DaoSession daoSession;
private DaoMaster daoMaster;
public static SqUtils getInstance() {
if (ourInstance == null){
ourInstance = new SqUtils();
}
return ourInstance;
}
private SqUtils() {
}
//初始化
public void init(Context context,String dbname){
DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(context,dbname);
db = devOpenHelper.getWritableDatabase();
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
}
//增
public void insert(Bean sqliteBean){
daoSession.getBeanDao().insert(sqliteBean);
}
//查
public List<Bean> query(){
return daoSession.getBeanDao().loadAll();
}
public void deleteAll(){
daoSession.getBeanDao().deleteAll();
}
}
package dw.dw.com.greendaosplite;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.google.gson.Gson;
import java.util.List;
import dw.dw.com.greendaosplite.adapter.Myadapter;
import dw.dw.com.greendaosplite.bean.ImageBean;
import dw.dw.com.greendaosplite.net.OkHttp;
public class MainTwoActivity extends AppCompatActivity {
private String url = "http://www.zhaoapi.cn/ad/getAd";
private RecyclerView recyclerView;
private Myadapter myadapter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.acitivty_maintwo);
recyclerView = findViewById(R.id.recyclerView);
myadapter = new Myadapter(this);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(linearLayoutManager);
recyclerView.setAdapter(myadapter);
if (isNetworkAvalible(this)){
doHttp();
}else{
String data = SqUtils.getInstance().query().get(0).getData();
Gson gson = new Gson();
ImageBean imageBean = gson.fromJson(data, ImageBean.class);
List<ImageBean.DataBean> list = imageBean.getData();
myadapter.setList(list);
}
}
private void doHttp() {
new OkHttp().get(url).setNetCallBack(new OkHttp.NetCallBack() {
@Override
public void onSuccess(String data) {
SqUtils.getInstance().deleteAll();
Bean bean = new Bean();
bean.setData(data);
SqUtils.getInstance().insert(bean);
Gson gson = new Gson();
ImageBean imageBean = gson.fromJson(data, ImageBean.class);
List<ImageBean.DataBean> list = imageBean.getData();
myadapter.setList(list);
}
});
}
/**
* 判断网络情况
*
* @param context 上下文
* @return false 表示没有网络 true 表示有网络
*/
public boolean isNetworkAvalible(Context context) {
// 获得网络状态管理器
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager == null) {
return false;
} else {
// 建立网络数组
NetworkInfo[] net_info = connectivityManager.getAllNetworkInfo();
if (net_info != null) {
for (int i = 0; i < net_info.length; i++) {
// 判断获得的网络状态是否是处于连接状态
if (net_info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
}