我们使用Intent的额外DS在活动中传递值。如果我需要将值从Activity
传递到Application
,那么最好的方法是什么?
我使用了SharedPreferences
,但是我无法看到设置的值。
我用过
PreferenceManager.getDefaultSharedPreferences(this).edit().putString(CURRENT_AIRLINE_IATA_CODE, AIRLINE_CODE);
为了阅读它,我使用了
PreferenceManager.getDefaultSharedPreferences(this).getString(CURRENT_AIRLINE_IATA_CODE, null);
Android文档说明SharedPreferences不能用于跨不同流程传递信息Note: currently this class does not support use across multiple processes. This will be added later.
http://developer.android.com/reference/android/content/SharedPreferences.html
答案 0 :(得分:0)
像这样设置
SharedPreferences settings = getSharedPreferences(NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("send","hello");
得到这样的
SharedPreferences prefs = getSharedPreferences(
"newshare",
Context.MODE_PRIVATE);
prefs.getString("send","not found");
答案 1 :(得分:0)
如果您将值设置为此类,则可以在应用程序中存储值。
public class MyApplication extends Application {
private static MyApplication singleton;
private Object value;
// Returns the application instance
public static TVGidsApplication getInstance() {
return singleton;
}
public final void onCreate() {
super.onCreate()
singleton = this;
}
public Object getValue(){
return value;
}
public void setValue(Object value){
this.value = value;
}
}
然后从任何Activity
(甚至任何其他类),您可以通过调用MyApplication.getInstance().setValue(value)
将值传递给应用程序
并通过调用Activity
从任何MyApplication.getInstance().getValue()
获取。
value
当然也可以是Object
答案 2 :(得分:0)
public static void record(String key,Context context,String value)
{
SharedPreferences pref=PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences .Editor editor=pref.edit();
editor.putString(key,value );
editor.commit();
}
public static String getRecord(String key,Context context)
{
return PreferenceManager.getDefaultSharedPreferences(context).getString(key,PREF_DEFAULT_VALUE);
}
您可以使用这些方法存储和获取首选项...希望它会有所帮助。