極光推送收不到推送消息
- 問題
- 解決
- 猜測為什麼會出現問題
問題
sdk版本号:
// 極光推送
compile 'cn.jiguang.sdk:jpush:3.1.6' // 此處以JPush 3.1.6 版本為例。
compile 'cn.jiguang.sdk:jcore:1.2.5' // 此處以JCore 1.2.5 版本為例。
新版的極光推送 gradle 自動配置可能是sdk自身有bug,導緻推送服務無法正常啟動,偶爾能正常啟動,不是很穩定。
在logcat中檢視找不到極光推送服務的程序:
程序中缺少
:multiprocess
和
:pushcore
程序,收不到推送就很正常了。
解決
在
Application
的
onCreate
方法中添加初始化方法:
// init jpush service
JPushInterface.setDebugMode(BuildConfig.DEBUG);
JPushInterface.init(this);
添加後再啟動應用就會看到這兩個程序了:
猜測為什麼會出現問題
使用老版本的極光推送和umeng等其他第三方服務,我們都會看到需要調用下初始化函數以啟動服務;新版的sdk因該使用了 ApplicationLifeCycle 接口來做的初始化,但是存在bug導緻service不能每次都正常啟動。