Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android-检查活动是否第一次打开_Java_Android - Fatal编程技术网

Java Android-检查活动是否第一次打开

Java Android-检查活动是否第一次打开,java,android,Java,Android,在人们说这是“检查android是否首次运行”的重复之前,这个问题是检查活动本身(而不是整个应用程序)是否首次打开 我有不同的活动运行Material Tap Target Prompt,所以有几个弹出窗口解释按钮和功能。 但我只想让它为第一次使用的用户运行 现在我尝试了以下方法: if (prefs.getBoolean("firstRun", true)) { prefs.edit().putBoolean("firstRun",false).appl

在人们说这是“检查android是否首次运行”的重复之前,这个问题是检查活动本身(而不是整个应用程序)是否首次打开

我有不同的活动运行Material Tap Target Prompt,所以有几个弹出窗口解释按钮和功能。 但我只想让它为第一次使用的用户运行

现在我尝试了以下方法:

        if (prefs.getBoolean("firstRun", true)) {
            prefs.edit().putBoolean("firstRun",false).apply();
                 ........Do the pop ups
}
但这将为整个应用程序设置它,因此当用户进入下一个屏幕时,它将不会运行,因为布尔值设置为false

所以我试图找到一种方法来检查活动本身是否是第一次打开的,但我似乎找不到任何可以解决这个问题的方法

我考虑使用一个变量,然后将其设置为1。但是,如果用户重新启动应用程序,应用程序崩溃等,那么var将被重置

另一种选择可能是在DB中创建一行,然后根据活动检查该行是否设置为1或其他值

但也许有更简单的方法


谢谢

为什么不为每个活动创建首选项键呢。下面添加了示例代码:

if (prefs.getBoolean(MainActivity.class.getCanonicalName(), true)) {
           prefs.edit().putBoolean(MainActivity.class.getCanonicalName(),false).apply();
                 ........Do the pop-ups
}

只需为每个活动创建不同的键-“firstRunActivity1”、“firstRunActivity2”等。您可以尝试将其用作键-
MyActivity.class.getSimpleName()
,因为我不知道您可以这样做。我给你这个就走。谢谢@vizsatiz什么是
prefs
?首选项键。很抱歉迟了答复