代码之家  ›  专栏  ›  技术社区  ›  Mike

高效且定期更新变量

  •  0
  • Mike  · 技术社区  · 8 年前

    Android中定期更新变量的最有效方法是什么?

    我有一个整数,它的值必须每秒增加一次(只有当应用程序打开时),并且应该可以通过所有活动/片段访问它。

    现在这是我的代码:

    onCreate() 在里面 主要活动 :

    Timer timer = new Timer();
    TimerTask updateValues = new UpdateValues();
    timer.scheduleAtFixedRate(updateValues, 0, 1000);
    

    和 更新值 类别:

    public static final String MY_PREFS_NAME = "MyPrefsFile"
    class UpdateValues extends TimerTask {
        public void run() {
            SharedPreferences sharedPref = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
            SharedPreferences.Editor editor = sharedPref.edit();
    
            int first = sharedPref.getInt("first_key", 0);
            editor.putInt("first_key", first + 1);
            // a lot of stuff in here
    
            editor.apply();
        }
    }
    
    2 回复  |  直到 8 年前
        1
  •  1
  •   Dici gla3dr    8 年前

    记录应用程序已打开的时间并由此计算整数的值不是更容易吗?诸如此类:

    public int getValue() {
        return (System.currentMillis() - startTimeMillis) / MILLIS_PER_SECOND;
    }
    

    除非我误解了你的问题,否则你真的不需要改变任何状态来计算应用程序启动后的秒数。

        2
  •  0
  •   Manuj Jagga    8 年前

    启动NOT\u STICKY服务并将计时器代码投入使用。所以,只要你的应用程序处于前台或后台,变量就会不断递增,一旦应用程序关闭,服务就会停止,变量也不会递增。