我可以有一个android活动只在第一次打开应用程序时运行吗?

好的,所以我正在玩一个android应用程序。

90%的用例是用户想要直接进入主要列表屏幕来find他们想要的东西。 这就是我想要的作为我的默认屏幕。

但是,当用户第一次加载应用程序时,在其列表屏幕对它们有任何价值之前,需要进行一些configuration。

所以我的问题是,如何在第一次打开应用程序时显示configuration活动,然后显示未来打开的列表屏幕。

我还想在configuration屏幕上放置一个演示button,所以我想不仅仅是检测到这是第一次,我特别想要检测用户是否在第一个屏幕上执行了某些configuration。

Solutions Collecting From Web of "我可以有一个android活动只在第一次打开应用程序时运行吗?"

我喜欢杜邦的方法。 类似的方法是将其configuration信息保存在SD卡上的文件中。 你的应用程序可以开始检查这些文件并加载信息。 如果加载成功,则进入下一个活动,否则启动适当的活动以提示用户input。

我已经做了同样的事情,但不是开动活动,我只是切换意见,直到我有我需要的所有信息,然后继续前进。

在用户第一次加载应用程序之后,您可以存储用户是否已经在SharedPreferences中执行configuration的详细信息。

protected void storeSharedPrefs(String value) { /* * Storing in Shared Preferences */ editor.putString("first", value); editor.commit(); //Commiting changes } 

检查应用程序是否已加载,通过检查SharedPreferences是否正确input了第一次和configuration详细信息

 private boolean first_time_check() { /* * Checking Shared Preferences if the user had pressed * the remember me button last time he logged in * */ String first = uPreferences.getString("first", null); if((first == null)){ return false; } else return true; } 

许多应用程序实际上将当前版本存储在SharedPreferences中,并检查是否已安装更新。 它是一个聪明的方式来实现“改变了什么”的popup窗口,或者确保一些设置被设置(我只是有一个布尔标志,因为如果你想添加一个额外的设置,你将需要第二个标志和第三次之后会变得麻烦,等等)。

String VersionValue =“v.1.0”; final String PREFS_NAME =“MyPrefsFile”;

  SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); if (settings.getBoolean(VersionValue, true)) { //the app is being launched for first time, do something NewDialogFragment newFragment = new NewDialogFragment(); newFragment.show(getFragmentManager(), "New"); // record the fact that the app has been started at least once settings.edit().putBoolean(VersionValue, false).commit(); } 

你可以这样做,仍然可以得到相同的结果,我试着它的一个小的解决方法,如果你不完全知道如何检查应用程序是否更新。 相反,使用此代码,只需将stringVersoinValue更改为当前的应用程序版本即可,Android将认为该应用程序是新的首次应用程序,只显示您曾经写过的代码,直到您在下次更新时更改VersionValue。 (:

你将如何存储configuration?

如果是在SQLlite中,您可以创build一个名为firstuse的表,并在其中放置一个名为hasbeen的字段并将其设置为空。 然后当应用程序被使用,你可以把一个1在那里。 然后,您可以在每次加载应用时阅读它,如果该字段= 1,则转到下一个活动。