强制下线极光推送

原创 2018年04月17日 15:46:55

为了遗忘特意在这里记录一下也顺便回忆:

现在manifest里面注册

<!-- 极光推送 User defined. 用户自定义的广播接收器 -->
<receiver
    android:name=".receiver.MyReceiver"
    android:enabled="true">
    <intent-filter>

        <!-- Required 用户注册SDK的intent -->
        <action android:name="cn.jpush.android.intent.REGISTRATION" />
        <action android:name="cn.jpush.android.intent.UNREGISTRATION" />
        <!-- Required 用户接收SDK消息的intent -->
        <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />
        <!-- Required 用户接收SDK通知栏信息的intent -->
        <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" />
        <!-- Required 用户打开自定义通知栏的intent -->
        <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />
        <!-- Optional 用户接受Rich Push Javascript 回调函数的intent -->
        <action android:name="cn.jpush.android.intent.ACTION_RICHPUSH_CALLBACK" />
        <!-- 接收网络变化 连接/断开 since 1.6.3 -->
        <action android:name="cn.jpush.android.intent.CONNECTION" />

        <category android:name="cn.ebuygoo.ybg" />
    </intent-filter>
</receiver>

注册极光manifest

然后自定义类继承广播:

@Override
public void onReceive(Context context, Intent intent) {
    Bundle bundle = intent.getExtras();
    Log.d(TAG, "[MyReceiver] onReceive - " + intent.getAction() + ", extras: " + printBundle(bundle));

    if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
        String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);
        Log.d(TAG, "[MyReceiver] 接收Registration Id : " + regId);
        //send the Registration Id to your server...

    } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {
        Log.d(TAG, "[MyReceiver] 接收到推送下来的自定义消息: " + bundle.getString(JPushInterface.EXTRA_EXTRA));
        Log.d(TAG, "[MyReceiver] 接收到推送下来的自定义消息: " + bundle.getString(JPushInterface.EXTRA_TITLE));
        Log.d(TAG, "[MyReceiver] 接收到推送下来的自定义消息: " + bundle.getString(JPushInterface.EXTRA_MESSAGE));
        Log.d(TAG, "[MyReceiver] 接收到推送下来的自定义消息: " + bundle.getString(JPushInterface.EXTRA_CONTENT_TYPE));
        Log.d(TAG, "[MyReceiver] 接收到推送下来的自定义消息: " + bundle.getString(JPushInterface.EXTRA_APP_KEY));
        Log.d(TAG, "[MyReceiver] 接收到推送下来的自定义消息: " + bundle.getString(JPushInterface.EXTRA_MSG_ID));
        processCustomMessage(context, bundle);//强制下线收到推送会走这一步

    } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {
        Log.d(TAG, "[MyReceiver] 接收到推送下来的通知");
        int notifactionId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);
        Log.d(TAG, "[MyReceiver] 接收到推送下来的通知的ID: " + notifactionId);

        String pushMessage = bundle.getString(JPushInterface.EXTRA_ALERT);
    } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
        String msg = bundle.getString(JPushInterface.EXTRA_ALERT);
        // TODO: 2018/3/6 点击状态栏回调

    } else if (JPushInterface.ACTION_RICHPUSH_CALLBACK.equals(intent.getAction())) {
        Log.d(TAG, "[MyReceiver] 用户收到到RICH PUSH CALLBACK: " + bundle.getString(JPushInterface.EXTRA_EXTRA));
        //在这里根据 JPushInterface.EXTRA_EXTRA 的内容处理代码,比如打开新的Activity, 打开一个网页等..

    } else if (JPushInterface.ACTION_CONNECTION_CHANGE.equals(intent.getAction())) {
        boolean connected = intent.getBooleanExtra(JPushInterface.EXTRA_CONNECTION_CHANGE, false);
        Log.w(TAG, "[MyReceiver]" + intent.getAction() + " connected state change to " + connected);
    } else {
        Log.d(TAG, "[MyReceiver] Unhandled intent - " + intent.getAction());
    }
}
注重红色部分,根据后台定义的规则而定
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34900897/article/details/79975863

android studio 升级3.0 - debugapielements - debugruntimeelements - releaseapielements - releaser

Error:Cannot choose between the following configurations of project :IMKit:   - debugApiElements   -...
  • qq_34900897
  • qq_34900897
  • 2017-11-03 10:57:17
  • 1425

打开项目报错

C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\appcompat-v7-28.0.0-alpha1.aar\9b7bff2d...
  • uglyant
  • uglyant
  • 2018-04-16 18:21:42
  • 42

Android警告错误搜集

7.close() was never explicitly called on database onDestroy的时候调用close()方法 6.No resource identifier f...
  • ximen250
  • ximen250
  • 2013-01-11 11:53:18
  • 22943

android attr.xml文件

  • ALDRIDGE1
  • ALDRIDGE1
  • 2013-11-01 18:22:53
  • 8818

Android利用Jpush实现异地登陆下线

一、说明 客户端程序中使用了xUtils框架(进行UI,资源的绑定,以及访问网络) JPush客户端集成可参照:http://docs.jiguang.cn/jpush/client/Android/...
  • sinat_27629035
  • sinat_27629035
  • 2016-10-09 19:22:23
  • 1375

广播的最佳实践——实现强制下线功能

本次项目实现一个简单登陆界面强制下线的功能(包含登陆界面、广播等内容)。*要有最朴素的生活,与最遥远的梦想!*...
  • yezhenxu1992
  • yezhenxu1992
  • 2015-08-24 16:38:47
  • 878

Popupwindow实现透明

昨天上午去了个面试,公司名我就不说了。面我那哥们问我有没有实现过半透明的popupwindow。哎,俺实在,没有做过那就是没有做过。估计那哥们也没打算要我,嫌我经验不够,我也没有舌灿莲花那种口才。公司...
  • ouyangtianhan
  • ouyangtianhan
  • 2011-06-23 22:29:00
  • 19561

QQ强制下线的实现,Activity与Broadcast组件的在应用

今天学习了一个效果,就是QQ强制下线,相信大家在登陆QQ的过程中,当你在其它设备登陆QQ的时候就会被强制下线,不管你此时停留在哪个界面,那这是怎么实现的呢?实现这个功能可以加深我们对广播有个更好的认识...
  • charlie_good
  • charlie_good
  • 2015-09-15 00:12:39
  • 647

强制下线通知实现

思路是我登录时获得一个账号的token,然后同时我收到一个后台的推送(每次登录都会收到),一旦收到这个推送我就去调检查token的接口,看一下是否和后台的当前账号的token一样,如果不一样就强制下线...
  • u012504392
  • u012504392
  • 2016-10-10 11:04:03
  • 1433

Android 强制下线功能 第一行代码

强制下线功能:先关闭掉所有的活动,然后回到登陆界面 先创建一个ActivityCollector类用于管理所有的活动 package com.example.zj.broadcastbestpr...
  • u012005313
  • u012005313
  • 2015-08-14 13:57:58
  • 1897
收藏助手
不良信息举报
您举报文章:强制下线极光推送
举报原因:
原因补充:

(最多只允许输入30个字)