java - Android Studio 仅更改一次启动 Activity

标签 java android android-activity android-studio app-startup

我正在开发一个带有 Navigation Drawer 的 Android 应用程序,它以这种方式工作:用户打开该应用程序并弹出一个教程(一个带有寻呼机滑动 fragment 的 Activity ,称为 ScreenSlideActivity.java);当用户滑动完教程后,他按下“完成”按钮,导致 MainActivity 初始化(创建 drawerLayout、drawerToggle 等)

我需要做的是在应用首次启动后只打开一次教程 Activity 。

我已经在主 Activity 中尝试使用此代码:

if (savedInstanceState == null) {
            SelectItem("tutorial");
}

确保 ScreenSlideActivity.java 立即启动。这个解决方案的问题是,当教程打开时,我无法再从那里访问 MainActivity.java,无论是从“向上”按钮还是从教程最后一页的“完成”按钮,可能是因为某种原因我不再将主要 Activity 作为父 Activity 。

然后我尝试了这个解决方案 change application's starting activity - Android修改 list xml 文件。添加:

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

到 ScreenSlideActivity。 这个解决方案的问题是它改变了我的项目结构,使我的 ScreenSlideActivity.java 成为 Main 和 Launching Activity(因此从这里我无法再访问 MainActivity),而我只想显示一次。

我还能做什么?

最佳答案

您可以使用 SharedPreferences 来检查/设置是否是第一次打开应用

String preferences_name = "isFirstTime";

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

   ...

    firstTime();
}
...

public  void  firstTime(){

    SharedPreferences sharedTime = getSharedPreferences(preferences_name,0); 
    if (sharedTime.getBoolean("firstTime",true))
    {

        //Your tutorial code

        sharedTime.edit().putBoolean("firstTime",false).apply();
    }
    else
    {
        //When not using tutorial code

   }

}

这里有类似的问题:https://stackoverflow.com/a/13237848/4555911

关于java - Android Studio 仅更改一次启动 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28863321/

相关文章:

java - 如何从外部项目的pom执行maven liquibase pom?

java - 无法调用 WindowUtils.getAllWindows()

java - 从父 Activity 访问选项卡式 fragment 方法?

Android 内存泄漏 - setBackgroundDrawable - 带有图像

java - 类型删除可防止重载,但允许覆盖

Java spring 无法从 application.properties 中正确读取值

android - 如何为每个选项卡刷新 ViewPager?

android - 在 Android 上卸载快捷方式的权限

android - 将图片从图库上传到 s3 存储桶 - 创建文件对象?

android - Activity和Fragment之间如何回调?