android - 高效且定期地更新变量
问题描述
在 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();
}
}
解决方案
记录应用程序打开了多少时间并从中计算出你的整数值不是更容易吗?像这样的东西:
public int getValue() {
return (System.currentMillis() - startTimeMillis) / MILLIS_PER_SECOND;
}
你真的不需要改变任何状态来计算自应用程序启动以来的秒数,除非我误解了你的问题。
推荐阅读
- android - 被“libcurl.so”引用时无法定位符号“EVP_MD_CTX_new”
- sql-server - VS 架构比较 - 从权限更新中排除“AS [dbo]”?
- url - 多个应用程序的 IIS 重写和反向代理
- javascript - 尝试向产品管理页面添加新类别时出现 Wordpress JS 错误
- python - 在控制台中打印数据时,熊猫数据框仅显示外列
- python - 如何在熊猫数据框中展平数组
- python - Pandas 使用元组和通配符进行过滤
- asp.net-core - 如何验证 ASP.NET Core DI 中的所有注册类型?
- flutter - 如何在颤动中更改时间选择器的标题文本主题
- php - League\Monga 更新查询示例