Android json 在不影响 activity 性能的情况下在后台解析
Android json parsing in background without affecting activity performance
我必须解析 Json
数据并将其保存到 Sqlite
数据库中,我想在后台执行此操作,以免影响 activity 性能。
我的数据和UI没有连接。
解析并保存数据后,Sqlite
进程应该会自动停止。
试试这个可能会有帮助
private void createHandler() {
Thread thread = new Thread() {
public void run() {
Looper.prepare();
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// Do parsing here
handler.removeCallbacks(this);
Looper.myLooper().quit();
}
}, 20);
Looper.loop();
}
};
thread.start();
}
由于这里没有真正的问题,我会给出一个看起来适合你问题的答案。
首先你需要使用 Asyntasks,然后在你处理响应之后你应该做一些事情,比如获取你的数据库实例并通过将它传递给你的 JSONObject 来调用正确的插入方法.如果它是一个 JSON 数组,那么你应该在数组上循环调用该函数(在循环中传递你所在的对象)。
你也可以有一个对象将你的 JSON 解析成它自己,然后你可以调用适合该对象的插入方法。
我必须解析 Json
数据并将其保存到 Sqlite
数据库中,我想在后台执行此操作,以免影响 activity 性能。
我的数据和UI没有连接。
解析并保存数据后,Sqlite
进程应该会自动停止。
试试这个可能会有帮助
private void createHandler() {
Thread thread = new Thread() {
public void run() {
Looper.prepare();
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// Do parsing here
handler.removeCallbacks(this);
Looper.myLooper().quit();
}
}, 20);
Looper.loop();
}
};
thread.start();
}
由于这里没有真正的问题,我会给出一个看起来适合你问题的答案。
首先你需要使用 Asyntasks,然后在你处理响应之后你应该做一些事情,比如获取你的数据库实例并通过将它传递给你的 JSONObject 来调用正确的插入方法.如果它是一个 JSON 数组,那么你应该在数组上循环调用该函数(在循环中传递你所在的对象)。
你也可以有一个对象将你的 JSON 解析成它自己,然后你可以调用适合该对象的插入方法。