こんにちは、私はAndroid開発の新機能です。私はログインのようないくつかのWebサービスを使用しています。しかし、私はどのようにWebサービスを最初に呼び出し、その後何度も何度もデータを取得する方法を得ていません。最初のプロファイルの画像のような負荷は、Webサービスからロードする必要はありません。どのように私はより柔軟で少ないコールwebserviceのためにこれを行うことができます。私を助けてください。アンドロイドどのように複数の同じ情報ユーティリティのために何度も何度もウェブサービスを呼び出すことを解決するには?
1
A
答えて
0
AsyncTaskはすでに、あなたが
private void doLogin(String id, String pass) {
if (mLoginAsync != null &&
mLoginAsync.getStatus() == AsyncTask.Status.PENDING
|| mLoginAsync.getStatus() == AsyncTask.Status.RUNNING) {
Log.i(getClass().getName(), "Already Running");
return;
}
mLoginAsync = new LoginAsync();
mLoginAsync.execute();
}
public class LoginAsync extends AsyncTask<String, Void, Void> {
@Override
protected Void doInBackground(String... strings) {
//Write Your api call here
return null;
}
}
0
の下にデータの1.Generate MD5を要求確認コードを終了し、sharedpreferencesでそれを保存することができます実行しているかどうかをチェックすることができます(あまりにもサーバーに。) 2.saveローカルデータベースのデータまたはsharedpreferencesのデータを最初に使用します。画像使用キャッシュテクニック 3.次回にget data call webserviceを呼び出してmd5 iサーバーの変更を確認します。変更された場合は、サーバーからアプリケーションにデータを更新しますそれ以外の場合は、手順2で保存したデータを使用してください。
0
オブジェクトをローカルデータに書き込みますベース:
ステップ1:あなたはJSONまたはXML形式で取得したデータを解析し、それをシリアル化:
public static byte[] serialize(Object O) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream out = new ObjectOutputStream(bos);
out.writeObject(O);
out.close();
// Get the bytes of the serialized object
byte[] buf = bos.toByteArray();
return buf;
}
ステップ2:クラスを作成し、SQLiteOpenHelperを拡張します。 テーブルを作成し、URLとタイプの直列化されたデータを追加します。
Class LocalDB extends SQLiteOpenHelper{
@Override ます。public voidのonCreate(SQLiteDatabaseデシベル){
db.execSQL(DICTIONARY_TABLE_CREATE);
}
公共ボイドaddQuery(文字列型、文字列のURL、バイト[]オブジェクト){
this.getReadableDatabase();
SQLiteDatabase db = null;
try {
db = ctx.openOrCreateDatabase(
DB,
SQLiteDatabase.OPEN_READWRITE, null);
ContentValues values = new ContentValues();
values.put(URL, url);
values.put(OBJECT, object);
values.put(TYPE, type);
// Inserting Row
db.insert(CACHE_TABLE_NAME, null, values);
db.close(); // Closing database connection
this.close();
} catch (Exception e) {
e.printstacktrace();
try {
db.close();
this.close();
} catch (Exception e) {
e.printstacktrace();
this.close();
}
}
}
}
ステップ3:URLを叩きながら再度データを
パブリック静的オブジェクトデシリアライズ(バイト[]入力、文字列型)をデシリアライズは、IOExceptionが{ をスロー(タイプ== ABC)であれば{ におけるこのmyobj OBJ =(MYOB)。 readObject(); return obj; }}
我々は特定の期間前のデータですBT
関連する問題
- 1. 何度も何度も関数を呼び出す
- 2. ロガーが同じ情報を何度も印刷するのを防ぐには?
- 3. Retrofit2 with RxJava、同じサーバAPIを何度でも同時に呼び出す
- 4. VBA Userforms同じユーザーフォームを何度も何度も表示する
- 5. 同じビューを何度も何度も使用する(Android)
- 6. 関数を何度も呼び出すには?
- 7. 同じ関数をJavaScriptで何度も呼び出すのを止める方法は?
- 8. 何度も何度も同じことをやっている...止める方法は?
- 9. なぜSystem.Randomは '1'に何度も何度も何度も何度も何度も何度も何度も何度も何度も何度も何度も繰り返していますか?
- 10. 同じファイルを何度もアップロードすることなく複数回アップロードする
- 11. 何度も何度も何度も何度もイベントを実行します。
- 12. randintは同じ番号を何度も何度も返します
- 13. 角度ルータ、何度もコントローラを呼び出す
- 14. 約束を何度も解決するには?
- 15. .htaccessでcodeigniterを使用すると、コントローラは何度も何度も呼び出されなくなります。
- 16. FirebaseRecyclerAdapter、PopulateViewHolderはスクロール時に何度も呼び出されます
- 17. 同じアイテムを何度も何度も購入する - アプリ内購入Android
- 18. 同じ入力で同じカーネルを何度も何度も何度も実行すると最適化は行われますか?
- 19. NHibernateが同じクエリを何度も何度も繰り返すことがありました
- 20. ノードエクスプレスで同じ要求をもう一度呼び出す
- 21. カスタムViewGroupのonLayoutが何度も何度も呼び出されているのはなぜですか?
- 22. 同じことを何度も印刷する
- 23. 同じ断片を何度も何度も置き換えるのを避けるには?
- 24. ユーザーが入力した値に応じて同じフォームを何度も呼び出す
- 25. 同じフラグメントを何度も実行するには?
- 26. 何度も何度も...ポインタ
- 27. google mock - 同じモックオブジェクトでEXPECT_CALLを何度も呼び出すことはできますか?
- 28. 実行中のサービスでstartService()を何度も呼び出す
- 29. アプリの購入方法を何度も何度も何度...?
- 30. 特定のコマンドを何度も何度も何度も何度も繰り返しますか?
ためにこのキャッシュを保持したい場合我々はまた、PARAMを生きるために時間を追加することができますか? –