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

2019-03-07 23:46:56 +08:00
 AichiB7A

小米推送文档中提到我们接入小米推送 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 已经启动了我这个应用?希望大神能回答一下这个问题。谢谢!

5411 次点击
所在节点    Android
1 条回复
GLee9507
2019-03-08 08:59:52 +08:00
静态广播

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/542319

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX