【问题标题】:How to store android notification date and time?如何存储android通知日期和时间?
【发布时间】:2014-03-03 11:01:01
【问题描述】:

目前我已经创建了一个应用程序来将音频文件存储在 sdcard 中。我将列出所有音频文件到 ListView,当用户单击该项目并设置该项目的日期和时间通知时,它应该出现通知。我想问的问题是我需要将此通知(日期和时间)存储到数据库吗?怎么存到sdcard里?

【问题讨论】:

  • 您应该只使用共享首选项:developer.android.com/reference/android/content/… 这比为一组值实现和维护数据库要容易得多。
  • 你有类似的例子吗?我阅读了您提供的信息,但我仍然不明白它如何将日期和时间存储在 sharedPreferences 中。

标签: android notifications sharedpreferences


【解决方案1】:

在 Android 中保存日期集合的最佳方法是将它们保存到 Shared Preferences。共享首选项使用键值关系,因此您可以使用音频文件的名称或 ID 作为键,并将转换为毫秒的日期作为值。

这是一些示例代码,我创建了一个帮助类,可以加载并保存到存储的首选项:

public class PreferenceUtil {

    public static void saveDateInMillis(Context context, String name, long value) {
        SharedPreferences sharedPreferences = context.getSharedPreferences("AppName", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putLong(name, value);
        editor.commit();
    }

    public static long loadDateInMillis(Context context, String name, long defualtValue) {
        SharedPreferences sharedPreferences = context.getSharedPreferences("AppName", Context.MODE_PRIVATE);
        return sharedPreferences.getLong(name, defualtValue);
    }
}

使用类:

    //Save a calendar object
    PreferenceUtil.saveDateInMillis(getActivity(), "audioID", Calendar.getInstance().getTimeInMillis());

    //Load a calendar object
    Calendar cal = Calendar.getInstance();
    cal.setTimeInMillis(PreferenceUtil.loadDateInMillis(getActivity(), "audioID", Calendar.getInstance().getTimeInMillis()));

更新:刚刚修复了代码中的几个小错误

【讨论】:

  • 你提到的“AppName”是类名还是我的音频应用名?
  • 它是它为存储数据而创建的文件的名称,它可以是任何你想要的。通常包和/或类名是合适的。
  • 我在一个列表中有很多音频文件,如果每个音频文件都有自己的提醒时间和日期,那么我如何将每个日期存储在 sharedPref 中?你上面的代码提到了“audioID”,但是在我的文件中我只通过列表的索引检测到它,我怎么能保存它?可以存储文件名,然后在列表中比较文件名得到索引吗?
  • 作为字符串的唯一标识符。正如您所说,最好使用文件名作为键,只要它始终是唯一的。
  • 现在我有了将所有这些详细信息存储到 sharedPreference 的想法,但现在我不知道如何从 sharedPreference 中获取值以匹配日期和时间与系统日期和时间。?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多