2016-04-07 6 views
-3

私は大学のコース選択アプリを開発しています。学生は申請に登録する必要があります。私はデータベースヘルパーを使用してSQLliteを使用しています、私のテーブルにはstudentID、パスワード、名前などが含まれています複数のデバイスに登録するSQLite - Android

私の質問はこのローカルですか?つまり、どうやって複数のデバイス上の学生テーブルにアクセスし、同時に読み書きすることができますか?それがプレイストアに置かれると、何千もの生徒がそれを使用します。

私はどの技術を使うべきですか?どこに置くべきですか? 私は本当にそれについて、混乱しています、進歩のおかげで。

+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はすべての複雑さを処理します。 AsyncTaskの機能を利用するために

2)、あなたはそれをサブクラス化し、ParamsProgressResultと呼ばれる3つのジェネリック型を、提供しなければなりません。 Paramsはタスクに解析されるパラメータを指し、Progressは進捗インジケータ/カウンタタイプを指し、Resultはタスクの完了時に返されるものです。 AsyncTaskには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

関連する問題