使用GCM进行Android推送通知

时间:2015-09-15 12:42:42

标签: java android google-cloud-messaging

我正在开发一个简单的应用程序,它接收来自PHP服务器的GCM推送消息。应用程序和服务器工作正常,即使有多个推送消息。我想在应用程序中添加的唯一内容是,如果在几秒钟内没有收到推送消息,可以说5秒,我希望我的应用程序向Toast发送消息“网络错误”。我正在使用“WakefulBrodcastReceiver”来接收推送消息。除此之外,所有代码都正常工作,正如我所期望的那样。

工作:
按下按钮会通知服务器,该应用程序已准备好接收通知 现在,我有两个场景,

  1. 应用程序没有收到任何推送消息,自按钮按下事件开始经过5秒,显示TOAST。
  2. 我已经收到了很少的推送消息,自从我收到最后一条消息后,已经过了5秒,显示出来。
  3. 以下代码片段是在GCM Handler类中编写的,它处理推送消息。

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            Log.e("HANDLER", "inside run()");
            Toast.makeText(mContext, "Network Error", 1000).show();
        }
    }, Constants.TIME_OUT);
    

    Constants.TIME_OUT的值是5000, Toast或Log永远不会显示。

1 个答案:

答案 0 :(得分:0)

如果应用程序在5秒钟内没有从PHP服务器收到推送通知,我想要做的就是显示“检查网络连接”消息。
Udi IZharf所述,当onHandleIntent返回时,服务关闭,延迟运行也是如此。所以,我尝试了另一种方式 我使用了Timer Task。 代码是,

nth td