Android 共享首选项不起作用,安卓?
下面的方法可以工作,但现在它不能将我的整数写入文件Android 共享首选项不起作用,安卓?,android,sharedpreferences,storage,Android,Sharedpreferences,Storage,下面的方法可以工作,但现在它不能将我的整数写入文件 public void writeChpNum(int num) { SharedPreferences prefs = context.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE); prefs.edit().putInt("chapter", num).apply(); } 这是我从主课上学到的: SharedPreferences prefs = thi
public void writeChpNum(int num) {
SharedPreferences prefs = context.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
prefs.edit().putInt("chapter", num).apply();
}
这是我从主课上学到的:
SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
chapterNum = prefs.getInt("chapter", 1);
方法在这种情况下不起作用:
writeChpNum(1);
writeLastLine("0");
boolean deleted = file.delete();
boolean deleted2 = file2.delete();
boolean deleted3 = file3.delete();
boolean deleted4 = last.delete();
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
在这里,我想重新启动一切并退出,所以我正在删除文件,但对于章节,我只需要写“1”-章节。但是,它没有写
这是因为我正在退出应用程序吗?当您这样访问上下文对象时,它在其他活动中将不可用。如果只想将此方法写入一个类,请尝试在方法中传递它的上下文。将方法设为静态,这样就不需要创建活动对象 编辑 根据退出应用程序的新代码,您需要
commit()
而不是apply()
参考:
是的,它是正确的。它怎么不工作?请显示一些错误日志。shared pref是应用程序私有文件,无法在外部直接访问。是的,我在不同的类中使用此方法。它在MainActivity类中获取整数,但在另一个类中写入整数。我必须只在一个类中使用它吗?@umarhussan是的,它对应用程序是私有的,但这会对这种情况产生什么影响?你确定它没有写入值吗?问题不是你将错误的值传递给了方法吗?我(在同一个应用程序中)做了以下两件事:
getContext().getSharedReferences(“sample\u name”,MODE_PRIVATE)代码>以及SharedReferences sPrefs=getSharedReferences(“睡眠”,模式为私有)代码>和它们都工作。第一个在适配器中。第二个是在它自己的活动中。是的,这个方法是有效的,但是,当我想写integer并退出应用程序时,它没有写。代码如上所示。在调用apply()时退出应用程序,请使用commit()方法。Apply异步工作,所以当它在后台工作时,您调用了exit。commit()在完成编写/失败后将转到下一行代码data@UmarHussain谢谢你,你救了我的命。我使用了commit()。
public static void writeChpNum(Context c, int num) {
SharedPreferences prefs = c.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
prefs.edit().putInt("chapter", num).commit() ;
}