【问题标题】:Kotlin: how do i check if the app has already been opened once?Kotlin:我如何检查应用程序是否已经打开过一次?
【发布时间】:2020-09-28 13:08:54
【问题描述】:

我正在 Flutter 中构建一个应用程序,需要在 Kotlin 中运行一段 sn-p 代码以检查该应用程序是否在首次运行。

我发现这是 Java 中的代码,但是如何在 Kotlin 中进行呢?

public class MyActivity extends Activity {

    SharedPreferences prefs = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Perhaps set content view here

        prefs = getSharedPreferences("com.mycompany.myAppName", MODE_PRIVATE);
    }

    @Override
    protected void onResume() {
        super.onResume();

        if (prefs.getBoolean("firstrun", true)) {
            // Do first run stuff here then set 'firstrun' as false
            // using the following line to edit/commit prefs
            prefs.edit().putBoolean("firstrun", false).commit();
        }
    }
}

【问题讨论】:

  • 如果您将 Java 代码复制粘贴到 Android Studio 中的 Kotlin 源文件中,它会为您转换。
  • 所有代码都在尝试获取一个名为firstrun的存储值,如果它不存在则默认为true(即如果它尚未设置,大概是因为这是第一次运行!)。然后在第一次运行完成任何操作之后,他们会为下一次设置该值。在 Kotlin 中完全一样!

标签: kotlin sharedpreferences


【解决方案1】:

其实很简单:

class MainActivity : Activity() {

    private lateinit var sharedPrefs: SharedPreferences
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        sharedPrefs = getSharedPreferences(packageName, MODE_PRIVATE)
    }
    
    override fun onResume() {
        super.onResume()
        if (sharedPrefs.getBoolean("firstRun", true)){
            sharedPrefs.edit().putBoolean("firstrun", false).commit()
        }
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-30
    • 2016-11-12
    • 2019-07-19
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    相关资源
    最近更新 更多