嗨我試圖檢測我的應用程序是否已經第一次打開。如果有,我需要運行一個活動,一旦它第二次打開,它不應該再次顯示它。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