先简单介绍一下我的应用程序。它是一个测验应用程序。它有一个显示问题的主屏幕,该问题会立即加载,箭头previous
指向next
其他测验问题。我一遍又一遍地使用相同的布局,只是通过传递不同的问题数据,所以当我点击“下一步”按钮时,它只会intent
向同一个类启动一个不同的数据。在我的单一布局开始时,我会稍微检查一下用户是否单击以隐藏免责声明。
所以我的免责声明会在应用程序开始时弹出。它有一个dismiss
按钮和一个Dont show this again
复选框。我可以让复选框完美地工作,但是当他们按下按钮SharedPreferences
时会出现问题。Dismiss
由于我重复使用相同的布局,因此每当用户导航到新问题时,都会弹出免责声明。我只希望它在第一个屏幕上弹出,例如当应用程序加载时。
我尝试设置另一个SharedPreference
以在用户点击时隐藏免责声明,dismiss
但一旦我隐藏它,它就再也不会回来了,因为当用户再次加载应用程序时,仍然设置了共享偏好。我的问题是知道在哪里设置偏好!我尝试重置它,onPause()
但没有奏效。
所以,我要问的是,如何确定一个活动是否是第一个要加载的活动,所以我只能在那时进行免责声明检查,而不是在随后的每个屏幕中进行检查?
谢谢。
编辑:这是我的OnCreate()
方法:
final static String disclaimerShownPref = "disclaimerShown";
final static String disclaimerShownOnce = "disclaimerShownThisSession";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mPrefs = PreferenceManager.getDefaultSharedPreferences(this);
//Checks to see if the boolean is set
//The second argument is the default to use if the preference can't be found
if(!mPrefs.getBoolean(disclaimerShownPref, false))
{
if(!mPrefs.getBoolean(disclaimerShownOnce, true))
{
new Disclaimer(this);
}
}
topMostLayout=buildHomeScreen();
setContentView(topMostLayout);
}