首页 > 解决方案 > 高效且定期地更新变量

问题描述

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

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

现在这是我的代码:

MainActivity中的onCreate()

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

UpdateValues类:

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();
    }
}

标签: androidperformancetimersharedpreferencesandroid-handler

解决方案


记录应用程序打开了多少时间并从中计算出你的整数值不是更容易吗?像这样的东西:

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

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


推荐阅读