使用脱机服务器数据库的Android应用程序

时间:2013-07-08 13:03:31

标签: android database

我是制作Android应用程序的新手。我想问一下我将如何完成以下提到的任务。

我有一个在我办公室的服务器上运行的离线网站。应用程序将有一个表单,其<select>选项从我们服务器中的数据库中提取。

即使我制作表格,我如何获得所有这些选择?

即使我在android数据库中导入完整的数据库,在服务器数据库上的字段更新,如何在Android应用程序数据库上更新字段?

另外,我如何将插入的字段与服务器数据库同步?

2 个答案:

答案 0 :(得分:0)

我认为Android无法连接到数据库服务器。您需要创建一个简单的Web服务来传递请求并返回响应。

This展示了如何设置Web服务JSON(MySql + Php)+如何在Android中使用它。

希望有所帮助。

答案 1 :(得分:0)

也许你可以用这样的类来访问它。

package com.yourpackage

import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;

import android.os.AsyncTask;
import android.util.Log;


      public class DownloadWebPageTask extends AsyncTask<String, Void, String> {
            @Override
            protected String doInBackground(String... urls) {
              String response = "";
              String DB_NAME = "sqlbeerlist.sqlite";

            try {
                URL url = new URL(urls[0]);
                URLConnection connection = url.openConnection();
                connection.connect();
                // this will be useful so that you can show a typical 0-100% progress bar
                int fileLength = connection.getContentLength();

                // download the file
                InputStream input = new BufferedInputStream(url.openStream());
                OutputStream output = new FileOutputStream("/sdcard/"+DB_NAME);

                byte data[] = new byte[1024];
                long total = 0;
                int count;
                while ((count = input.read(data)) != -1) {
                    total += count;
                    // publishing the progress....
                    //publishProgress((int) (total * 100 / fileLength));
                    output.write(data, 0, count);
                }

                output.flush();
                output.close();
                input.close();

      } catch (IOException e) {
              Log.d("ImageManager", "Error: " + e);
      }
              return response;
            }


      }

执行任务

String sUrl = "URL TO YOUR FILE";
    DownloadWebPageTask task = new DownloadWebPageTask();
            task.execute(new String[] { sUrl });