2016-04-07 72 views
-3

我正在開發一所大學的課程選擇應用程序。學生必須註冊申請。我通過使用db helper使用SQLlite,我的表包含studentID,密碼,名稱等。SQLite在多個設備上註冊 - Android

我的問題是此sqlite數據庫僅停留在本地嗎?我的意思是,我怎樣才能達到多個設備上的學生表,同時讀寫。當它穿上玩具店時,千名學生將使用它。

我應該使用哪些技術,我應該在哪裏放置db? 我真的很困惑,感謝提前。

+1

是SQLite是本地數據庫。如果你想爲所有用戶使用一個公共數據庫,例如使用mysql數據庫。 – xNeyte

+0

SQLite無法訪問其他設備 –

回答

0

通過sqlite這是不可能的。您必須在server上創建數據庫。對於那件事,你可以使用mysqloracle等。所以從服務器n學生可以訪問數據。

有很多時候,當你的Android應用程序需要從互聯網獲取數據,爲用戶提供新的信息和/或數據。您的應用可以通過不同的方式實現此目的。您可以設置自己的webservice/API,或者您可以從已有的service/API中提取。

1)API獲取數據幸運的是,這裏有一個類,叫做AsyncTask。從Android documentation,AsyncTask通過允許執行後臺操作,並在UI線程上發佈結果而無需操縱線程和處理程序,從而促進了UI thread的正確和簡便的使用。簡而言之,AsyncTask可爲您處理所有複雜問題。

2)要使用的AsyncTask功能,必須繼承它,並提供3種泛型類型,稱爲ParamsProgressResult。參數是指將分析到您的任務的參數,Progress指的是進度指示器/計數器類型,結果是完成任務時將返回的結果。 AsyncTask有4個重要的方法,onPreExecute(昂貴的任務開始之前應該做什麼),doInBackground(實際的昂貴的操作進入這裏),onProgressUpdate(做什麼來顯示進度)和onPostExecute(任務完成時該怎麼辦)。

class RetrieveFeedTask extends AsyncTask<Void, Void, String> { 

     private Exception exception; 

     protected void onPreExecute() { 
      progressBar.setVisibility(View.VISIBLE); 
      responseView.setText(""); 
     } 

     protected String doInBackground(Void... urls) { 
      String email = emailText.getText().toString(); 
      // Do some validation here 

      try { 
       URL url = new URL(API_URL + "email=" + email + "&apiKey=" + API_KEY); 
       HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
       try { 
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); 
        StringBuilder stringBuilder = new StringBuilder(); 
        String line; 
        while ((line = bufferedReader.readLine()) != null) { 
         stringBuilder.append(line).append("\n"); 
        } 
        bufferedReader.close(); 
        return stringBuilder.toString(); 
       } 
       finally{ 
        urlConnection.disconnect(); 
       } 
      } 
      catch(Exception e) { 
       Log.e("ERROR", e.getMessage(), e); 
       return null; 
      } 
     } 

     protected void onPostExecute(String response) { 
      if(response == null) { 
       response = "THERE WAS AN ERROR"; 
      } 
      progressBar.setVisibility(View.GONE); 
      Log.i("INFO", response); 
      responseView.setText(response); 
     } 
    } 

Read本教程中使用此功能:http://www.androidauthority.com/use-remote-web-api-within-android-app-617869/

另請參閱該文檔:http://developer.android.com/reference/android/os/AsyncTask.html

+0

非常感謝! – asyaben