setBroadcastTime修改手机时间调试

qing
2018-10-16 02:06 610 0

你好,使用安卓本地通知API:setBroadcastTime(long broadCastTime)
jpush-android-3.1.5.jar
jcore-android-1.2.3.jar
unity插件版本:JPushUnityPlugin_v3.2.6.unitypackage

遇到问题:
假如现在是10:00点,我设置2小时后(12:00)推送,我在调试时,修改手机时间为11:58,2分钟后并不会推送。

我想问下,本地推送的计时原理是怎样的?
在开发中,我要怎样改时间方便进行调试呢?

我们的需求
我们是希望在每天的12点和20点,对游戏活动进行推送。
目前是使用的安卓的本地推送API,public void setBroadcastTime(long broadCastTime)
我目前的做法是在APP启动时,以当前时间点计算出距离 当天的12点,20点剩余的秒数 为 s1,s2
循环设置30天的推送:
s1+24小时秒数 * 天数
s1+24小时秒数 * 天数
示例代码:

    for dayIdx = 0, 30 do
        local factorScend = 24 * 3600 * dayIdx ---86400
        local pushTimestamp = Tool.TodaySecondServer(data.pushHour, data.pushMinute)
        local nextSecond = math.floor((pushTimestamp - nowTimestamp) + factorScend)
        if dayIdx == 0 then
            Log(string.format("推送时间戳=%s,当前时间戳=%s", pushTimestamp, nowTimestamp))
        end
        if nextSecond <= 0 then
            ---过期的不设置
            Log(string.format("已过期不设置,%s秒(%s)后进行推送", nextSecond, Tool.GetDateFormat2(nextSecond)))
        else
             JPushBinding.AddLocalNotification(self.builderId, data.content, data.title, data.id, nextSecond, "");
        end
    end

这个的做法并不好,想请问下是否有其它方法推荐?

PS. 极光有提供服务器的定时任务,目前我们这边的服务器没有接入处理这块内容,所以是放在客户端处理。
http://docs.jiguang.cn/jpush/server/push/rest_api_push_schedule/

1个回答

热门排序