我需要记录我的布尔变量的变化,这取决于我的代码中的某些条件。我有一个每秒运行一次的timertask来跟踪任何这样的变化。当发生变化时,即当变量变为“真实”时。为了' false',我需要节省发生此事件的时间。所有这些事件都需要能够在以后从另一个Activity中检索。我可以使用SharedPreferences实现此任务:我正在考虑使用putstring方法:
sp_editor.putString("alarm_activated",String.valueOf(System.currentTimeMillis()));
但我意识到每次都会覆盖alarm_activated。但我需要所有的时间'值。 我也可以通过添加' time'来每次更改密钥(密钥,值)。关键本身如下。
sp_editor.putStrng("alarm_activated"+String.valueOf(System.currentTimeMillis(),placeholder);
这看起来是一种非常低效的方法。
我还有其他办法吗?
答案 0 :(得分:1)
正确的方法是设置和更新您的应用可以使用的SQLite数据库。它可以在本地保存和检索数据方面为您提供最大的灵活性,而不必担心如果应用程序被杀,则会丢失数据。这是一个很好的tutorial
答案 1 :(得分:-1)
创建一个单例类并在里面创建ListArray,您可以在其中保存数据。
如果需要从其他应用程序访问数据,请使用Android SQLite。
答案 2 :(得分:-1)
你可以创建一个这样的类。
public class TimeKeeper {
private static TimeKeeper instance;
public List<String> timeList = new ArrayList<String>();
public static TimeKeeper getTimeKeeper() {
if (instance == null) {
instance = new TimeKeeper();
}
return instance;
}
}
从TimerTask中,您可以将时间添加到列表中
TimeKeeper.getTimeKeeper().timeList.add("Your Time");
并且您可以从任何其他活动轻松访问此列表。
如果它适合你,请标记为。
// =======为了永久保存它,你可以遍历它并将其保存到db。
for(Strng time :TimeKeeper.getTimeKeeper().timeList)
{
db.insertTime(time); //call Your method to insert time string into your db
}