我只是在youtube上拖了一个tutuorial问题是代码只运行一次。下次当我尝试exacute没有任何事情发生有趣的是,如果我创建另一个应用程序并复制并粘贴代码一切似乎没问题但是我不能再次工作,直到创建并通过代码另一个应用程序。这个过程继续。
Boolean isFirst=getSharedPreferences("PREFER", MODE_PRIVATE).getBoolean("isfirstrun", true);
if(isFirst){
Toast.makeText(MainActivity.this, "FIRST", Toast.LENGTH_LONG).show();
getSharedPreferences("PREFER", MODE_PRIVATE).edit().putBoolean("isfirstrun",false).commit();
}
答案 0 :(得分:0)
如果您的应用程序唯一要做的就是显示Toast,那么它的行为就像人们期望的那样。从本质上讲,您的代码所说的是“只有在第一次运行时才显示消息。否则,什么都不做。”它在您创建新应用程序时的工作原因是因为新安装的应用程序有一个新的共享首选项文件,该文件没有设置isfirstrun
标志。
要测试,请在if-block
之后添加另一个Toast,然后再次运行。例如:
Boolean isFirst=getSharedPreferences("PREFER", MODE_PRIVATE).getBoolean("isfirstrun", true);
if(isFirst){
Toast.makeText(MainActivity.this, "FIRST", Toast.LENGTH_LONG).show();
getSharedPreferences("PREFER", MODE_PRIVATE).edit().putBoolean("isfirstrun",false).commit();
}
Toast.makeText(MainActivity.this, "I'M REALLY RUNNING! HONEST!", Toast.LENGTH_LONG).show();