在 Android 中将 Sqlite 数据库与远程服务器同步
Posted
技术标签:
【中文标题】在 Android 中将 Sqlite 数据库与远程服务器同步【英文标题】:Sync Sqlite Database With Remote Server in Android 【发布时间】:2017-12-10 01:13:03 【问题描述】:我使用sqlite
数据库从远程服务器存储数据AsyncTask
..
我已经使用Retrofit
来获取数据,现在我想将该数据存储到sqlite
... 我已经拥有DatabaseHelper.class
、模型类和NavigationDrawer
,因为我正在AsynckTask
中执行MainActivity
.
private class getDataToSqlite extends AsyncTask<Post, Void, Void>
@Override
protected Void doInBackground(Post... params)
apiInterface.getContacts().enqueue(new Callback<List<Post>>()
@Override
public void onResponse(Call<List<Post>> call, Response<List<Post>> response)
if (response.isSuccessful())
contacts = response.body();
for (int i=0; i < contacts.size(); i++)
Post post = contacts.get(i);
SaveToDatabase task = new SaveToDatabase();
task.execute(post);
adapter.addPost(post);
else
@Override
public void onFailure(Call<List<Post>> call, Throwable t)
Toast.makeText(getApplicationContext(), "Error" + t.toString(), Toast.LENGTH_SHORT).show();
);
return null ;
private class SaveToDatabase extends AsyncTask<Post, Void , Void>
@Override
protected Void doInBackground(Post... params)
Post post = params[0];
try
myDb.addData(post);
catch (Exception e)
Log.d(TAG, e.getMessage());
return null;
MainActivity
中的那个班级
我打电话给onCreate
的班级
new getDataToSqlite();
我哪里做错了请告诉我
【问题讨论】:
where i doing wrong
先告诉我们是什么问题。
【参考方案1】:
你可以做一些我已经做过的事情:
public boolean SyncCityMasterToDevice()
try
DatabaseHandler db = new DatabaseHandler(mContext);
db.dbDelete(TableCityMaster.TABLE);
List<CityMaster> cityMasterList = ServerRepo.getCities();
db.dbAddCity(cityMasterList);
Log.d(TAG, "SyncCityMasterToDevice: ");
return true;
catch (IOException e)
e.printStackTrace();
return false;
ServerRepo.getCities();
是一个改造电话。
我在异步任务中调用了SyncCityMasterToDevice()
方法
`DatabaseHandler` is the Database Helper Class.
【讨论】:
请批准答案。以上是关于在 Android 中将 Sqlite 数据库与远程服务器同步的主要内容,如果未能解决你的问题,请参考以下文章
如何在android中将arraylist或vector插入SQLite数据库?
在 android 中将 SQLite 数据从平板电脑更新到手机
如何在 Android 中将 Arraylist 插入 sqlite?