Your abuse of global variables (i.e. with the static keyword) is giving you memory leaks.
On Apr 9, 9:58 am, Gubatron <[email protected]> wrote: > Here's a static wrapper I implemented to get and set properties real > easy > > package gubatron.android.util; > > import java.util.Arrays; > > import android.content.Context; > import android.content.SharedPreferences; > import android.content.SharedPreferences.Editor; > > /** > * Convenience class to get or set preference values without dealing > with Android's SharedPreferenes and the editor. > * Licensed under LGPL. > * > * @author gubatron > * > * Examples: > * > * PrefUtils.setString(key, value) > * > * String value = PrefUtils.getString(key); > * PrefUtils.getString(key, defaultValue); > * > * > */ > public final class PrefUtils { > > private static SharedPreferences PREFERENCES; > private static Editor EDITOR; > > static { > PREFERENCES = > GlobalVariables.APP_CONTEXT.getSharedPreferences(GlobalConstants.PREFS_FILE > _NAME, > Context.MODE_PRIVATE); > EDITOR = PREFERENCES.edit(); > } > > public static String getString(String prefKeyName) { > return getString(prefKeyName, null); > } > > public static String getString(String prefKeyName, String > defaultValue) { > String result = PREFERENCES.getString(prefKeyName, > defaultValue); > if (result == null) > return null; > return result; > } > > public static byte[] getByteArray(String prefKeyName) { > return getByteArray(prefKeyName, null); > } > > public static void setString(String prefKeyName, String value) { > EDITOR.putString(prefKeyName,value); > EDITOR.commit(); > } > > public static byte[] getByteArray(String prefKeyName, String > defaultValue) { > String result = getString(prefKeyName, defaultValue); > if (result == null) > return null; > return result.getBytes(); > } > > public static void setByteArray(String prefKeyName, byte[] value) { > EDITOR.putString(prefKeyName,new String(value)); > EDITOR.commit(); > } > > public static boolean getBoolean(String prefKeyName, boolean > defaultValue) { > return PREFERENCES.getBoolean(prefKeyName, defaultValue); > } > > public static void setBoolean(String prefKeyName, boolean value) { > EDITOR.putBoolean(prefKeyName,value); > EDITOR.commit(); > } > > public static int getInt(String prefKeyName, int defaultValue) { > return PREFERENCES.getInt(prefKeyName, defaultValue); > } > > public static void setInt(String prefKeyName, int value) { > EDITOR.putInt(prefKeyName,value); > EDITOR.commit(); > } > > public static void clearSettings() { > EDITOR.clear(); > EDITOR.commit(); > } > > public static void testPrefUtils() { > clearSettings(); > assert(getString(GlobalConstants.PREF_KEY_UUID)==null); > > byte[] macAddress = > WifiUtils.getWiFiMACAddress(GlobalVariables.APP_CONTEXT); > PrefUtils.setByteArray(GlobalConstants.PREF_KEY_UUID, > macAddress); > int macAddressChecksum = > ByteUtils.tripleByteArrayToSmallInt(ByteUtils.getByteArrayChecksum(macAddre > ss)); > > byte[] fetchedMacAddress = > PrefUtils.getByteArray(GlobalConstants.PREF_KEY_UUID); > int fetchedAddressChecksum = > ByteUtils.tripleByteArrayToSmallInt(ByteUtils.getByteArrayChecksum(fetchedM > acAddress)); > Arrays.equals(macAddress, fetchedMacAddress); > > assert(macAddressChecksum == fetchedAddressChecksum); > > PrefUtils.setInt("test.int.key", Integer.MAX_VALUE); > assert(Integer.MAX_VALUE == > PrefUtils.getInt("test.int.key",0)); > > PrefUtils.setInt("test.int.key", Integer.MIN_VALUE); > assert(Integer.MIN_VALUE == > PrefUtils.getInt("test.int.key",0)); > > } > > } > > On Apr 9, 5:47 am, Kim Ras <[email protected]> wrote: > > > > > Excellent, I looked at that and was not sure if that fas able to share > > the settings between Servises and Activities.. I will look again > > Thanks > > Kim -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en To unsubscribe, reply using "remove me" as the subject.

