Java 句柄发送解析推送通知错误/超时

Java 句柄发送解析推送通知错误/超时,java,android,parse-platform,Java,Android,Parse Platform,对于我们试图从断开网络连接的设备发送推送通知的情况,是否有方法设置超时或获取错误 我已经查阅了API的所有文档,我也在谷歌上搜索过,但我找不到任何关于如何实现这一点的信息 例如,给定下面的代码,我们如何处理推送通知未发送的情况,因为当时设备没有网络连接??相反,无论我是否将回调传递给sendInBackground,这段代码都会自动失败,ParseException参数始终为null ParsePush push = new ParsePush(); push.setMessage("Test.

对于我们试图从断开网络连接的设备发送推送通知的情况,是否有方法设置超时或获取错误

我已经查阅了API的所有文档,我也在谷歌上搜索过,但我找不到任何关于如何实现这一点的信息

例如,给定下面的代码,我们如何处理推送通知未发送的情况,因为当时设备没有网络连接??相反,无论我是否将回调传递给sendInBackground,这段代码都会自动失败,ParseException参数始终为null

ParsePush push = new ParsePush();
push.setMessage("Test...");
push.setQuery(someParseQuery);
push.sendInBackground(new SendCallback(){
    @Override
    public void done(ParseException e) {
        // TODO Auto-generated method stub
        if(e == null){
            //it always gets here, even if device has no connectivity...
        } else {
            //never enters here when there is no network connectivity...
        }                    
    }
});
非常感谢您的帮助

Tl;博士

当没有internet时,SendCallBack不会引发ParseException,因此无法检查推送是否确实已发送。一种解决方法是编写一个包装器或某种检查是否存在internet连接的方法,然后发送推送,但这样的解决方案远远不够理想

///////////////////////////////////////////////////////////////////////////////////

你不能给我一点吗

push.sendInBackground();
处理推送返回的处理程序

示例代码:

push.sendInBackground(new SendCallback(){
    @Override
    public void done(ParseException e) {
        // TODO Auto-generated method stub
        if(e == null){
            //Succesfully send your pushnotification
        } else {
            //Oh uh, something went wrong :(
        }                    
    }
});

谢谢Bart,但是将处理程序传递到sendInBackground不起作用,因为ParseException始终为null,即,即使在没有网络连接的情况下发送推送通知也成功…嗯,真遗憾,我希望它会抛出一个期望值,因为ParseException有一个enum连接\u失败,当连接到Parseservers失败时。是的,我希望如此,但我刚刚测试了几次,我确认异常总是空的。。。但也许我做错了什么。。。它对你有用吗?不,我还没有遇到在没有互联网连接的情况下测试它的问题,但我担心我会遇到同样的问题。这取决于每个回调可以引发什么样的异常,不幸的是,我的SaveCallback引发的异常不是sendcallback引发的,我也一直在四处寻找,看看在没有互联网连接的情况下,我是否能找到与发送推送相关的任何东西,而且似乎完全没有任何问题。一个快速修复方法是,在发送之前,创建自己的后台线程,在internet连接可用之前进行检查,然后发送。但就我个人而言,我会尝试在Parse.com论坛上提问,因为它看起来像是那些不时参与Parse评论开发的人。对不起,我帮不上什么忙了!
push.sendInBackground(new SendCallback(){
    @Override
    public void done(ParseException e) {
        // TODO Auto-generated method stub
        if(e == null){
            //Succesfully send your pushnotification
        } else {
            //Oh uh, something went wrong :(
        }                    
    }
});