美文网首页
信鸽接入总结

信鸽接入总结

作者: J_xs | 来源:发表于2017-11-09 11:54 被阅读76次
    简单的介绍信鸽接入的,
    

    信鸽接入

    官方文档
    接入按照官方文档来就好了,这里不是重点

    接受推送消息

    • APP已经打开的情况
      1、Activity中监听点击事件
      在需要监听到点击的Activity的onCreate中初始化对当前界面的监听,这里是直接接入和处理点击,根据后台的配置,可能会直接进入到某个页面,也就是会直接重新启动app或者直接跳到某个页面而不是在重启之后跳转
     @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);        
    // 这里尽量在onCreate的靠前位置进行初始化
            XGPushClickedResult clickedResult = XGPushManager.onActivityStarted(this);
     if (clickedResult != null) {
      // 这里MessageBean根据需要传递的自定义参数来定义就好
                MessageBean messageBean = new Gson().fromJson(clickedResult.getCustomContent(), new TypeToken<MessageBean>() {
                }.getType());
                messageBean.setMsgId(clickedResult.getMsgId());
                messageBean.setTitle(clickedResult.getTitle());
                messageBean.setContent(clickedResult.getContent());
                // 处理点击获取的推送消息
                handlerPushMessage(messageBean);
            }
    }
    

    2、判断是否进入了闪屏页
    由于默认要重新打开APP,所以会再次从SplashActivity进入,如果不让它显示,那么需要去判断然后关闭SplashActivity

     private void initXG() {
        XGPushClickedResult clickedResult = XGPushManager.onActivityStarted(this);
            if (clickedResult != null) {
                MessageBean messageBean = new Gson().fromJson(clickedResult.getCustomContent(), new TypeToken<MessageBean>() {
                }.getType());
                messageBean.setMsgId(clickedResult.getMsgId());
                messageBean.setTitle(clickedResult.getTitle());
                messageBean.setContent(clickedResult.getContent());
                handlerPushMessage(messageBean);
                // 如果当前是splashactivity
                if (this instanceof SplashActivity) {
                // 如果SplashActivity在栈底,因为splash在每次启动后会被关闭所以isTaskRoot会为false,此时程序会打开Splash,就调用到finish关闭splash,如此就不会重新打开app了
                    if (isTaskRoot()) {
                    // 如果splashactivity在启动中, 也就是app不在活动的时候的点击事件
    handleAppNotRunNotificationClick();
                        return;
                    }
                  // 如果splash不在activity的栈中那么关闭splashactivity(这个splashactivity是当app开启的时候点击了通知栏又打开的,这样就防止了app被重新进入splashactivity)
                  // 这里处理当app在运行时点击了app通知的事件
    handleNotificationClick();
                    finish();
                }
            }
        }
    

    注意

    • 测试的时候发生推送暂停
      由于不停的进行发送推送进行测试,导致后面的时候发送全部直接进入到发送暂停,这是由于腾讯限制一个小时内的推送总量数了


      img1
    • 如果你在Activity中使用了静态的常量,并且做了拼接的操作,那么这个常量由于没有被释放,那么在点击通知后再次进入,拼接仍然会添加在这个常量的后面,所以尽量少使用常量,并且在拼接的额时候尽量使用临时的字符串,不要让静态的自负床常量变动

    • 在点击后Activity进行跳转的过程中如果Activity的背景没有设置为透明,那么在跳转的时候会出现黑屏的现象,并且如果被进入的Activity包含了动画,这个黑屏的时间会比较长,所以要在Activity的theme中设置它的背景为透明

    相关文章

      网友评论

          本文标题:信鸽接入总结

          本文链接:https://www.haomeiwen.com/subject/nkcpmxtx.html