应用研发平台EMAS中请问移动push我继承了AndroidPopupActivity,app被杀死了也收到了通知,点击通知也唤起了这个Activity,但是没有走onSysNoticeOpened
方法,这是什么问题呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个问题可能是由多种原因引起的。首先,onSysNoticeOpened
方法是在 AndroidPopupActivity 中定义的一个回调方法,当用户点击系统通知时会被调用。如果你在子类中覆盖了这个方法并且没有显式调用 super.onSysNoticeOpened(),那么父类中的实现将不会被执行。
另一个可能的原因是系统通知可能存在多个频道,你的应用可能会接收到不同频道的通知,而在 AndroidPopupActivity 中你可能只为某个特定频道注册了 onSysNoticeOpened
回调。
除此之外,如果 AndroidPopupActivity 或其子类没有正确地注册为系统的默认活动(即在 AndroidManifest.xml 文件中有正确的声明),那么即使用户点击了通知也无法激活对应的 Activity 并调用相应的回调方法。
为了更好地理解问题发生的具体情况,建议你检查以下几个方面:
onSysNoticeOpened
回调;这个问题可能是由于你的Activity没有正确地处理系统通知(System Notice)导致的。在Android中,当应用被杀死后,系统通知会保存在系统的通知栏中,当用户点击通知时,系统会尝试重新启动应用并调用相应的Activity。
在这种情况下,你可能需要在你的Activity中重写onSysNoticeOpened
方法,以便在处理系统通知时被调用。以下是一个简单的示例:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ...
}
@Override
protected void onNewIntent(Intent intent) {
if (intent.getAction() == Intent.ACTION_VIEW) {
// 处理系统通知的点击事件
handleSystemNoticeClick(intent);
} else {
super.onNewIntent(intent);
}
}
private void handleSystemNoticeClick(Intent intent) {
// 在这里处理系统通知的点击事件
// ...
}
在这个示例中,onNewIntent
方法会在收到新的意图时被调用。你可以在这个方法中检查意图的ACTION
属性,如果它是Intent.ACTION_VIEW
,那么就表示这是一个系统通知的点击事件,你可以在这里处理它。