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() ;
}