嗨我试图检测我的应用程序是否已经第一次打开。如果有,我需要运行一个活动,一旦它第二次打开,它不应该再次显示它。Android使用共享首选项来检查第一次运行
这是我的代码:
片段:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Intent intent = new Intent(getActivity(), TutorialFeaturedActivity.class);
//startActivity(intent);
SharedPreferences settings = this.getActivity().getSharedPreferences(PREFS_NAME, 0); // Get preferences file (0 = no option flags set)
boolean firstRun = settings.getBoolean("firstRun", true); // Is it first run? If not specified, use "true"
if(firstRun) {
Log.w("onCreate: ","first time");
Intent intent = new Intent(getActivity(), TutorialFeaturedActivity.class);
startActivity(intent);
SharedPreferences.Editor editor = settings.edit(); // Open the editor for our settings
editor.putBoolean("firstRun", false); // It is no longer the first run
editor.apply(); // Save all changed settings
} else {
Log.w("onCreate: ","second time");
Intent intent = new Intent(getActivity(), MainActivity.class);
startActivity(intent);
}
getSpecials();
}
但它是所有启动的活动,当我再次启动它,它冻结在一个白色的屏幕,但检查记录,它显示像其他声明不断地反复运行。我对Android很陌生,所以一些帮助或建议将不胜感激
你应该使用editor.commit();保存更改 – gaurang
请问使用getActivity()。finish()是什么?这就是我看到的第一次和第二次运行之间的差异。这可能会让你回到你检查第一次跑步的班级,并且你进入了一个无限循环?! – Nico
当我使用editor.commit();或申请我仍然得到相同的结果,也ide告诉我我shoudl使用应用而不是承诺,但同样的问题。 – thaabitv