I have static DefaultSharedPreference
variable defined as like here:
public class Itu extends Application {
public static SharedPreferences sharedPreferencesFDefault;
@Override
public void onCreate() {
sharedPreferencesFDefault = PreferenceManager.getDefaultSharedPreferences(this);
}
public static SharedPreferences getSharedPreferencesItu(){
return sharedPreferencesFDefault;
}
}
(1. way) When i access it directly from some Activity, it clears sharedPreference:
((Itu) getApplication()).sharedPreferencesFDefault.edit().clear().commit();
(2. way) But when i access it through Getter method and try to clear()
it, it does NOT work:
public static SharedPreferences sharedPreferencesFDefault;
sharedPreferencesFDefault = ((Itu) getApplication()).getSharedPreferencesItu();
sharedPreferencesFDefault.edit().clear().commit();
Old question: What is the difference between 1.way and 2.way?
UPDATE: I changed public static SharedPreferences sharedPreferencesFDefault
to public SharedPreferences sharedPreferencesFDefault
and both ways worked.
New question: What happens when i initialize static
variable with another static
variable indeed?