在Android中获得时差

用户

首先,我想存储用户午餐我的应用程序的当前时间。然后,当用户再次启动我的应用程序时,我还将获得当前时间并将当前时间与先前存储的时间进行比较,并检查时差是否变为“一天”。因为时差是否变为“一天”然后我会在我的应用程序中执行某些操作 但是我可以理解该怎么做。

我知道

Long tsLong = System.currentTimeMillis();
    String ts = tsLong.toString();

获取当前时间。这实际上是什么“ currentTimeMillis” ???但是我不明白我怎么能达到我的总体目标。请谁能建议我如何解决这个问题?

维克多·埃里亚斯(Victor Elias)

如果您想存储用户上次打开应用程序的时间,则可能需要使用SharedPreferences并存储用户打开应用程序的时间,然后将存储的值与下次打开应用程序的时间进行比较,检查是否时差大于1天。

首先,回答您的实际问题:System.currentTimeMillis()返回自“历元”(1970年1月1日00:00:00)以来经过的毫秒数。它在文档中。

现在,为了存储用户打开您的应用程序的时间,您应该在主要活动的onCreate(或您的应用程序的onCreate,具体取决于您的情况)上执行以下操作:

SharedPreferences preferences = getSharedPreferences(PREF_FILENAME, MODE_PRIVATE);
long openTime = System.currentTimeMillis();
preferences.edit()
        .putLong(OPEN_TIME_KEY, openTime)
        .commit();

最后,为了检查应用程序的最后一次打开与当前打开之间的时差(您应该在第一个代码段之前执行此操作,而不是在读取之前覆盖存储的首选项):

long day = 24 * 60 * 60 * 1000; // Milliseconds in a day. Define this as a constant
SharedPreferences preferences = getSharedPreferences(PREF_FILENAME, MODE_PRIVATE);
long openTime = System.currentTimeMillis();
long lastTime = preferences.getLong(OPEN_TIME_KEY, 0);
if ((openTime - lastTime) > day) {
    // do your thing here
}

您显然应该在两个代码片段(openTime和首选项)上重用一些变量,但是无论如何我都是这样做的,以便您理解概念并自己实现,而不仅仅是复制代码。无论如何,我认为可以完成工作,祝您好运!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android中获得时差?

来自分类Dev

如何在Java中获得时差

来自分类Dev

如何以分钟为单位以这种格式表示的时间在python中获得时差?

来自分类Dev

如何获得时差对象的时区偏移量?

来自分类Dev

总是在数分钟内获得时差

来自分类Dev

减去两个日期以获得时差

来自分类Dev

投射特定的小时和分钟并获得时差

来自分类Dev

如何从Excel中格式化为dd / mm / yyyy hh:mm的单元格中获得时差?

来自分类Dev

在PostgreSQL中获得时间戳的年份

来自分类Dev

如何在Python中获得时间

来自分类Dev

在PostgreSQL中获得时间戳记的年份

来自分类Dev

如何在ClojureScript中获得时间戳?

来自分类Dev

Java:如何获得时间戳中的毫秒数

来自分类Dev

如何在PyCharm工作中获得时间和睡眠?

来自分类Dev

如何获得时间序列数据框中的下一个日期

来自分类Dev

如何在UTC中获得时间戳但没有时间?

来自分类Dev

如何在C ++中获得时间,最好是在多平台上

来自分类Dev

如何在终端中每次启动命令之前获得时间?

来自分类Dev

在 MySQL 中存储出勤率和获得时间差的最佳方法?

来自分类Dev

Javascript RegExp Replace获得时间

来自分类Dev

如何使用Moment JS获得时间

来自分类Dev

Bootstrap Datetimepicker获得时间部分

来自分类Dev

当nodejs-request获得时没有正文内容,但可以在浏览器或curl中工作

来自分类Dev

如何在Android中显示时差或反向时间

来自分类Dev

如何在跨平台C ++ 32位系统中获得以毫秒为单位的时差?

来自分类Dev

如何获得时间序列中间隔的结束时间?

来自分类Dev

当行未处于特定状态时,MySQL获得时间

来自分类Dev

如何使用时区从JodaTime获得时间

来自分类Dev

SQL Developer在运行查询时获得时间

Related 相关文章

  1. 1

    如何在Android中获得时差?

  2. 2

    如何在Java中获得时差

  3. 3

    如何以分钟为单位以这种格式表示的时间在python中获得时差?

  4. 4

    如何获得时差对象的时区偏移量?

  5. 5

    总是在数分钟内获得时差

  6. 6

    减去两个日期以获得时差

  7. 7

    投射特定的小时和分钟并获得时差

  8. 8

    如何从Excel中格式化为dd / mm / yyyy hh:mm的单元格中获得时差?

  9. 9

    在PostgreSQL中获得时间戳的年份

  10. 10

    如何在Python中获得时间

  11. 11

    在PostgreSQL中获得时间戳记的年份

  12. 12

    如何在ClojureScript中获得时间戳?

  13. 13

    Java:如何获得时间戳中的毫秒数

  14. 14

    如何在PyCharm工作中获得时间和睡眠?

  15. 15

    如何获得时间序列数据框中的下一个日期

  16. 16

    如何在UTC中获得时间戳但没有时间?

  17. 17

    如何在C ++中获得时间,最好是在多平台上

  18. 18

    如何在终端中每次启动命令之前获得时间?

  19. 19

    在 MySQL 中存储出勤率和获得时间差的最佳方法?

  20. 20

    Javascript RegExp Replace获得时间

  21. 21

    如何使用Moment JS获得时间

  22. 22

    Bootstrap Datetimepicker获得时间部分

  23. 23

    当nodejs-request获得时没有正文内容,但可以在浏览器或curl中工作

  24. 24

    如何在Android中显示时差或反向时间

  25. 25

    如何在跨平台C ++ 32位系统中获得以毫秒为单位的时差?

  26. 26

    如何获得时间序列中间隔的结束时间?

  27. 27

    当行未处于特定状态时,MySQL获得时间

  28. 28

    如何使用时区从JodaTime获得时间

  29. 29

    SQL Developer在运行查询时获得时间

热门标签

归档