V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
AichiB7A
V2EX  ›  Android

小米 push 接入时的一个困惑,希望有前辈回答一下

  •  
  •   AichiB7A · 2019-03-07 23:46:56 +08:00 · 5157 次点击
    这是一个创建于 1868 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小米推送文档中提到我们接入小米推送 sdk 的时候需要向自己接入的应用中注册一个继承自 PushMessageReceiver 类的 BroadcastReceiver,这个类包含了一个 onNotificationMessageClicked 方法,当用户从通知栏点击通知时,就会触发这个方法的调用。

    根据小米推送文档中的内容:

    2. 当我的应用被杀掉之后,还能否接收到小米推送服务的消息?
    	1)   如果是在 MIUI 系统中,使用通知栏类型的消息,是不需要应用出于启动状态就能接收并弹出通知栏的。
    

    也就是说在 MIUI 系统中,应用被完全杀死的情况下,后台推送一条通知栏类型的信息到手机上。手机上仍能显示此通知,并且点击后也会触发 onNotificationMessageClicked。

    如果是这样的一个情况,是不是意味着通过 onNotificationMessageClicked 方法。在一个应用完全被杀死的情况下,点击通知后触发 onNotificationMessageClicked 方法从而能执行我应用中代码的一部分逻辑?例如下面这个BroadcastReceiver

    public class DemoMessageReceiver extends PushMessageReceiver {
        @Override
        public void onReceivePassThroughMessage(Context context, MiPushMessage message) {
        }
        @Override
        public void onNotificationMessageClicked(Context context, MiPushMessage message) {
    		// 不使用 Context,直接在这里写应用内逻辑
        }
        @Override
        public void onNotificationMessageArrived(Context context, MiPushMessage message) {
    
        }
        @Override
        public void onCommandResult(Context context, MiPushCommandMessage message) {
    
        }
        @Override
        public void onReceiveRegisterResult(Context context, MiPushCommandMessage message) {
        }
    }
    

    但感觉这样不符合我对 Android 系统应用管理的理解。还是说在 onNotificationMessageClicked 方法之前 MIUI 已经启动了我这个应用?希望大神能回答一下这个问题。谢谢!

    1 条回复    2019-03-08 08:59:52 +08:00
    GLee9507
        1
    GLee9507  
       2019-03-08 08:59:52 +08:00
    静态广播
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3709 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:51 · PVG 08:51 · LAX 17:51 · JFK 20:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.