首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果在Android中达到了特定的日期和时间,我如何在后台签入?

如果在Android中达到了特定的日期和时间,我如何在后台签入?
EN

Stack Overflow用户
提问于 2016-07-27 12:40:09
回答 1查看 558关注 0票数 2

我正在尝试做一个程序,如果达到特定的日期和时间,就会在后台进行检查。我想在SharedPreference中保存日期和时间。SharedPreferences不是问题,但我需要知道如何创建在后台运行的服务,并检查SharedPreference中的日期和时间是否等于当前时刻的日期和时间。我还需要在启动时启动服务。这就是我现在拥有的:

安卓宣言

代码语言:javascript
代码运行次数:0
运行
复制
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<receiver android:name="Receiver" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

    <service
        android:name=".Service"
        android:exported="false"/>

接收机

代码语言:javascript
代码运行次数:0
运行
复制
public void onReceive(Context context, Intent intent) {
    context.startService(new Intent(context, Service.class));
}

服务

代码语言:javascript
代码运行次数:0
运行
复制
SharedPreferences prefs;

public Service() {
    super("Service");
}

@Override
protected void onHandleIntent(Intent workIntent) {
    prefs = getSharedPreferences("nl.martijnvk.declareerassistent", Context.MODE_PRIVATE);

}

编辑:

多亏了Prashanth,我让它与AlarmManager类一起工作,但是毫秒的计算是不正确的。在我的日志中,他打印的值为1469632151229,但我的日历设置为一分钟后。有什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2016-07-27 12:52:39

正如您提到的,您知道如何使用共享首选项,

  1. 无法以字符串形式从SharedPreference读取日期。
  2. 然后,需要在Date对象中转换该字符串: 公共静态日期getDateFromString(String dateString,String format){ date date = null;尝试{ if (dateString != null) { SimpleDateFormat dateFormat =新的SimpleDateFormat(格式);Date = dateFormat.parse(dateString);} catch (异常e) {}返回日期};

注意:这里的字符串格式可以是您在SharedPref. SimpleDateFormat模式示例中保存的任何模式。

  1. 得到当前的日期。 日期currentDate =新日期();
  2. 然后,您可以使用以下任何一种方法来比较这两个日期。 公共静态布尔isEqualiOrBefore(Date baseDate,Date dateToCompare) { 尝试{ return (baseDate.equals(dateToCompare)欧元baseDate.before( dateToCompare) );} catch (NullPointerException npe) {返回false;}}公共静态布尔isEqualiOrAfter(Date baseDate,Date dateToCompare){ try { return (baseDate.equals(dateToCompare)欧元/dateToCompare);} catch (NullPointerException npe) {返回false;}}公共静态布尔型isEquali(Date baseDate,Date dateToCompare) { try { catch (baseDate.equals(dateToCompare));}catch (NullPointerException npe) {返回false;}}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38613252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档