notification启动activity失效

问题描述:公司的app里面需要用小米push推送一条消息,并且点击实现落地页。但是,自己测的时候没问题(使用的是MIUI 9),用别人的手机就不能实现落地。同时,打断点也不能发现不能进入到小米提供的响应接口(后来发现,应该是我打包之后代码混淆了,所以进不来。。。)

解决方法:启动的intent加上一个flag(FLAG_ACTIVITY_NEW_TASK)

原因:当一个notification启动一个activity时传入的Context并不是原先一个正常的ActivityContext。因为在Activity Stack 中的每一个activity 之间相互启动,它们都存在于一个共同的stack中。而小米的推送,实际存在于一个PushService里,在service中传入的Context并不在一个Activity Stack 中,所以,使用这个context.stactActivity的时候就会出现问题,导致不能启动Activity。

解释的可能不是很清楚,因为我也是听别人讲解的,没有查到相关的资料。所以先记下结论,以后遇到再更新。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容