You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用安装后仅首次显示欢迎页问题求助:现每次打开均显示

看起来你遇到的问题是欢迎页没有记住用户已经看过它,所以每次启动应用都会重复显示。这个问题很常见,核心解决思路就是用SharedPreferences存储一个「是否首次启动」的标记,每次打开应用时先检查这个标记,再决定要不要展示欢迎页。

下面是具体的修改步骤和代码示例:

1. 在SplashScreen_Activity的onCreate中添加首次启动判断

首先,在Activity初始化的时候,读取SharedPreferences里的标记:

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

    // 初始化SharedPreferences,存储首次启动标记
    SharedPreferences pref = getApplicationContext().getSharedPreferences("MyAppPrefs", MODE_PRIVATE);
    boolean isFirstLaunch = pref.getBoolean("is_first_launch", true);

    // 如果不是首次启动,直接跳转到主界面
    if (!isFirstLaunch) {
        launchMainActivity();
        finish();
        return;
    }

    // 下面是你原来的欢迎页初始化代码(ViewPager、dots、按钮等)
    viewPager = findViewById(R.id.view_pager);
    layoutDot = findViewById(R.id.layout_dots);
    btnNext = findViewById(R.id.btn_next);
    btnSkip = findViewById(R.id.btn_skip);
    layouts = new int[]{R.layout.slider1, R.layout.slider2, R.layout.slider3};
    myPagerAdapter = new MyPagerAdapter(layouts, this);
    viewPager.setAdapter(myPagerAdapter);
    // ... 其他初始化代码
}
2. 实现跳转主界面并更新标记的方法

写一个专门的方法来处理跳转到主界面,同时把「首次启动」的标记设为false:

private void launchMainActivity() {
    SharedPreferences.Editor editor = getApplicationContext().getSharedPreferences("MyAppPrefs", MODE_PRIVATE).edit();
    editor.putBoolean("is_first_launch", false);
    editor.apply(); // 异步保存,比commit更高效

    // 替换成你的主Activity类名
    Intent intent = new Intent(SplashScreen_Activity.this, MainActivity.class);
    startActivity(intent);
    finish(); // 关闭当前欢迎页,避免用户按返回键回到这里
}
3. 给按钮添加点击事件处理

给跳过和下一步按钮绑定点击逻辑,确保用户操作后更新标记并跳转:

// 跳过按钮点击
btnSkip.setOnClickListener(v -> launchMainActivity());

// 下一步按钮点击
btnNext.setOnClickListener(v -> {
    int currentPage = viewPager.getCurrentItem();
    if (currentPage < layouts.length - 1) {
        // 还有下一页,切换到下一页
        viewPager.setCurrentItem(currentPage + 1);
    } else {
        // 已经到最后一页,跳主界面
        launchMainActivity();
    }
});
4. 可选:滑动到最后一页时更新按钮文字

为了提升用户体验,当滑动到最后一页时,可以把「下一步」按钮改成「开始使用」,同时隐藏跳过按钮:

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}

    @Override
    public void onPageSelected(int position) {
        // 这里可以保留你原来的更新指示器dots的代码
        updateDots(position);

        // 更新按钮状态
        if (position == layouts.length - 1) {
            btnNext.setText("开始使用");
            btnSkip.setVisibility(View.GONE);
        } else {
            btnNext.setText("下一步");
            btnSkip.setVisibility(View.VISIBLE);
        }
    }

    @Override
    public void onPageScrollStateChanged(int state) {}
});

这样修改后,用户第一次打开应用会看到欢迎页,之后每次启动都会直接进入主界面。如果用户卸载重装应用,SharedPreferences会被清空,欢迎页会再次显示,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Nikson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:08:16