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

如何在Kotlin中实现APP首次启动时仅显示一次对话框?

实现首次打开APP仅显示一次对话框

要让对话框只在用户首次打开APP时显示,你可以借助SharedPreferences存储一个状态标记,记录对话框是否已经展示过。具体实现步骤如下:

  1. 获取SharedPreferences实例,读取标记状态
  2. 仅当标记为「未显示」时,弹出对话框
  3. 对话框弹出后,更新标记为「已显示」

修改后的完整代码如下:

// 获取SharedPreferences实例,名字可自定义,这里用"app_prefs"
val sharedPrefs = getSharedPreferences("app_prefs", MODE_PRIVATE)
// 读取标记,默认值false代表首次打开还没显示过对话框
val hasShownDialog = sharedPrefs.getBoolean("has_shown_welcome_dialog", false)

if (!hasShownDialog) {
    val miDialogo = AlertDialog.Builder(this)
        miDialogo.setTitle(R.string.dialogo_titulo)
        miDialogo.setMessage(R.string.dialogo_mensage)
        miDialogo.setPositiveButton("Ok", null)
        val dialog = miDialogo.create()
        dialog.show()

    // 更新标记为已显示,apply()为异步提交,不会阻塞主线程
    sharedPrefs.edit().putBoolean("has_shown_welcome_dialog", true).apply()
}

关键说明:

  • SharedPreferences是Android自带的轻量存储工具,适合保存这类简单状态标记,数据会持久化存储在设备上,除非用户清除APP数据或卸载。
  • 标记更新放在dialog.show()之后,确保只要对话框显示过,就会记录状态,避免用户通过返回键关闭对话框后再次弹出。
  • 如果在Fragment中使用,需把this替换为requireContext()来获取上下文。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 03:24:22