【发布时间】:2013-11-20 07:59:48
【问题描述】:
我在 Java(和 android)方面非常陌生,因此尽管进行了广泛的搜索,但我无法以我有限的知识解决它。
在下面的代码中,我想通过 AsyncTask 从网络链接中获取 JASONArray。之后我想从数组数据中填充我的数据库。
为此,我创建了 RemoteConnectivity 类,我可以在其中使用来自 JASONArray 的所有数据填充 ArrayList 导入数据。但问题是,我无法从 RemoteConnectivity 类内部访问我的数据库类 mylibmandbhandler(我猜是因为它没有扩展到 Activity)。在 ImportExport 类中,如果我在调用 RemoteConnectivity().execute() 之后编写插入数据库的代码[如下代码所示],它会在执行结束之前开始插入(非常明显,因为它是 AsyncTask 的属性)。
现在,有人可以指导我完成这个吗?或任何链接请了解整个过程(我在阅读的至少 50 页中迷失了:()。
附: mylibmandbhandler 是我在我的包 src 文件夹中为我的数据库操作创建的一个类(不是活动)。
public class ImportExport extends Activity {
public void webimport(View v){
new RemoteConnectivity().execute(); // START OF ASYNCTASK
//INSERT importdata INTO DATABASE AFTER EXECUTE
mylibmandbhandler db = new mylibmandbhandler(this);
for (String[] s : importdata){
db.addRecord(new mylibman(s));
}
}
final ArrayList<String[]> importdata = new ArrayList<String[]>();
private class RemoteConnectivity extends AsyncTask<Void, Void, Void>
{
@Override
protected Void doInBackground(Void... arg0) {
..................
..................
importdata.add(dataline); // POPULATE ARRAYLIST IMPORTDATA
return null;
}
@Override
protected void onPostExecute(Void result1)
{
// WHAT TO WRITE HERE
}
}
}
【问题讨论】:
标签: android database class android-asynctask