2016-07-20 9 views
0

質問:共有設定を管理するには、共有設定に大量のデータが保存されていると編集するのに時間がかかりますか?共有環境設定を管理するには、共有環境設定で大きなデータが保存されている場合、編集に時間がかかりますか?

私は共有データにリストデータのような私の活動データを保存しています。エディタを呼んで共有の設定で何かを編集するとき。編集に時間がかかります。

共有設定で大きなデータを管理する方法。

+0

大きなデータを共有設定に保存するのはなぜですか? –

+0

私は、データが頻繁に変更され、他のアクティビティに伝播するアプリケーションを持っています。データを簡単に取得して頻繁に変更できるストレージが必要です。 – manmohan

答えて

1

SharedPreferencesで多くのデータを管理する最も良い方法は、SharedPreferencesの値を取得/設定するための多くのメソッドを含む「ヘルパー」クラスを作成することです。例:

package com.example.your_app.helpers; 


import android.content.Context; 
import android.content.SharedPreferences; 
import android.util.Log; 

import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.toolbox.Volley; 

import org.json.JSONException; 
import org.json.JSONObject; 

public class AssetLoader { 
    private static SharedPreferences prefs; 
    private static Context context1; 

    public static void load(Context context) { 
     context1 = context; 
     // Prefs 
     prefs = context.getSharedPreferences("YourApp", Context.MODE_PRIVATE); 
    } 

    public static void setTotalLocations(int totalLocations) { 
     prefs.edit().putInt("totalLocations", totalLocations).apply(); 
    } 

    public static Integer getTotalLocations() { 
     if(prefs != null) { 
      return prefs.getInt("totalLocations", 1); 
     } else { 
      return -1; 
     } 
    } 

    public static void setItemName(String id, String name) { 
     prefs.edit().putString(gid, name).apply(); 
    } 

    public static String getItemName(String id) { 
     return prefs.getString(id, ""); 
    } 
} 

このコードは、自分のアプリからコピー/貼り付けされたものです。これは、アプリケーションの起動時に呼び出す必要のあるload()メソッドを備えています。このメソッドは、必要なものをロードするために使用できます。他のすべては、例setItemNamegetItemNameのようなゲッター/セッターメソッドにすることができます。

+0

これをテストします。ありがとうございました。 – statosdotcom

+1

@statosdotcomよろしくお願いします!私はそれがあなたのために働くことを望む。それ以上の助けが必要な場合は、教えてください! – TheAnonymous010

0

私はこれを見ています。大容量のデータを本当に格納する必要がある場合は、SQLiteを共有環境設定に使用することを検討する必要があります(私にとっては)キャッシュされたアプリケーション設定などの小さな値に対してのみ使用することをお勧めします。

関連する問題