我正在使用SharedPreferences
来了解用户是否在ViewPager
中选择了某些内容并将其传递到相关片段。
e.g。如果有选择,则变量isPassed = 1
如果还没有选择isPassed = 0
问题:
由于SharedPreferences
持久化数据并且值isPassed = 1
始终存在,这会扰乱我在应用程序内的当前流程。所以我尝试在我isPassed=0
课程的onDestory
中分配ViewPager
,但它不起作用。
有人可以建议对此进行任何改进吗?或者至少建议我一种存储值的方法,直到用户进入应用程序,并且一旦用户退出应用程序,所有值都将被重置。请帮忙。
答案 0 :(得分:2)
而不是使用共享首选项创建一个类并使用setter和getter方法来设置和获取值。退出应用程序后,您的值也将被销毁。
答案 1 :(得分:1)
如果您不希望您的信息在应用范围之外保留,那么SharedPreferences
真的不是一个好地方。
为什么不尝试将它存储在Application
课程的实例中?用户退出应用程序后,系统会迅速销毁此实例。
答案 2 :(得分:1)
使用
public static int isPassed=0;
它将存储值,直到用户进入应用程序,并且一旦用户退出应用程序,它将重置。
您可以通过Classname.isPassed=1;
答案 3 :(得分:0)
如果你要找的只是一个标志,你可以创建一个空文件。 几种创建文件的方法
File myFile =new File(directory.getAbsolutePath() + File.separator + "myFile.txt");
try
{
new_file.createNewFile();
}
catch (IOException e)
{
}
检查它是否存在 File myFile = context.getFileStreamPath(FILE_NAME); if(file.exists())
删除它 File myFile = new File(selectedFilePath); boolean deleted = file.delete();