小米推送文档中提到我们接入小米推送 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 已经启动了我这个应用?希望大神能回答一下这个问题。谢谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.