2

我定义的处理程序没有使用 sendEmptyMessageAtTime 设置消息。我从 updateTime.getTimeInMillis 得到的时间是有效的。我在这里想念什么?

@Override
protected void onResume() {
    super.onResume();
    mNavigationBarFragment.configureFor(0);
    Calendar updateTime = Calendar.getInstance();
    updateTime.set(Calendar.YEAR, 2012);
    updateTime.set(Calendar.HOUR_OF_DAY, 18);
    updateTime.set(Calendar.MINUTE, 40);
    updateTime.set(Calendar.SECOND, 0);
    if(mUpdateOnAirLabel.sendEmptyMessageAtTime(1, updateTime.getTimeInMillis())){
    // messages gets placed
    }
}

private Handler mUpdateOnAirLabel = new Handler() {
    public void dispatchMessage(android.os.Message msg) {
    // doesn't get triggered
}

public void handleMessage(android.os.Message msg) {
    // doesn't get triggered
}
};

UPD 我从日历对象得到的时间是正确的:

<?php

echo date("r", 1348753200578 / 1000);

输出:2012 年 9 月 27 日星期四 17:40:00 +0400

之后,我尝试从当前时间戳偏移

Calendar now = Calendar.getInstance(); 
long nowt = now.getTimeInMillis();
if(mUpdateOnAirLabel.sendEmptyMessageAtTime(1, now.getTimeInMillis() + 5000)){
        ...
}

它也没有触发。这里有什么问题?

4

1 回答 1

-1

你没有指定日期!把 Calendar.DAY_OF_YEAR 或类似的东西!

于 2012-09-27T14:58:18.357 回答