java - 获取应用程序关闭的时间。如何?

标签 java android android-studio time

我想制作一款空闲游戏,为此我需要获取应用程序关闭的时间,以便我可以计算该离线时间内的收入。

我的第一个想法是获取 currentTimeMillis 并通过sharedPreferences保存它们,当再次打开应用程序时,我计算当前时间和保存时间之间的差异。我的问题是sharedPreferences变量似乎一直是0。

我的代码:

Zeit = System.currentTimeMillis() / 1000L;
Zeit_Differenz = Zeit - Zeit_SAVE;

        Log.i("e","aktuelle Zeit: " + Zeit);
        Log.i("e", "gespeicherte Zeit: " + Zeit_SAVE);
        Log.i("e", "errechnete differenz: " + Zeit_Differenz);
SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putLong("Zeit save", Zeit);
editor.apply();
SharedPreferences sharedPreferences = getSharedPreferences(SHARED_PREFS, MODE_PRIVATE);
Zeit_SAVE = sharedPreferences.getLong("Zeit save", 0);

日志猫:

aktuelle Zeit: 1569344292                         (time right now)
gespeicherte Zeit: 0                              (saved time)
errechnete differenz: 1569344292                  (calculated difference)

这些 fragment 之间还有其他代码。我刚刚为您复制了最重要的代码。

我希望你能帮助我,这确实是我实现这一目标的唯一想法。

最佳答案

只需重写方法 Activity.onPause()Activity.onResume() 即可保存时间戳,然后再执行计算。首选项名称 Zeit save 中的一个空格可能会导致它始终返回默认值 0;最好用 _ 下划线替换它,例如。 timestamp_paused

关于java - 获取应用程序关闭的时间。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58085235/

相关文章:

java - 实现社会安全号码的安全方法

java - 我们可以在java中回滚文件mkdir吗?

android - 如何在 Android 中从周日开始从 Sq-lite 检索仅 1 周的数据?

Android FacebookActivity 不显示无法调用 determinedVisibility()

groovy - 捕获IllegalStateException并停止我的Gradle/Groovy构建并打印一条消息?

android - Activity 之间交互的最佳实践

java - Eclipse编辑器代码编辑

java - 如何在 JGit 中使用 Repository::resolve(String)

java - 客户端无法连接到服务器套接字 - Android

Android--设计一个快速获取数据的后台服务