应用保活--杀死进程也能收到推送消息

原文:http://blog.csdn.net/jhl122/article/details/53433594



我选取的是极光推送,当把进程杀死时候就接受不到推送过来的消息。这是因为我使用的是小米手机,小米和华为手机属于那种深度定制安卓系统,需要用户的操作才能够实现应用“保活”的目的。

[plain]  view plain  copy
  1. 小米【MIUI】  
  2. 自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程无法开启  
  3. 通知栏设置:应用默认都是显示通知栏通知,如果关闭,则收到通知也不会提示  
  4. 网络助手:可以手动禁止已安装的第三方程序访问2G/3G和WIFI的网络和设置以后新安装程序是否允许访问2G/3G和WIFI的网络  
  5. MIUI 7 神隐模式: 允许应用进行自定义配置模式,应用在后台保持联网可用,否则应用进入后台时,应用无法正常接收消息。【设置】下电量和性能中【神隐模式】  
  6. 华为【Emotion】  
  7. 自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程不会开启,只能手动开启应用  
  8. 后台应用保护:需要手动把应用加到此列表,否则设备进入睡眠后会自动杀掉应用进程,只有手动开启应用才能恢复运行  
  9. 通知管理:应用状态有三种:提示、允许、禁止。禁止应用则通知栏不会有任何提醒  
  10. 魅族【Flyme】  
  11. 自启动管理:需要把应用加到【自启动管理】列表,否则杀进程或重新开机后进程无法开启  
  12. 通知栏推送:关闭应用通知则收到消息不会有任何展示  
  13. 省电管理: 安全中心里设置省电模式,在【待机耗电管理】中允许应用待机时,保持允许,否则手机休眠或者应用闲置一段时间,无法正常接收消息。  
  14. VIVO【Funtouch OS】  
  15. 内存一键清理:需要将应用加入【白名单】列表,否则系统自带的“一键加速”,会杀掉进程  
  16. 自启动管理:需要将应用加入“i管家”中的【自启动管理】列表,否则重启手机后进程不会自启。但强制手动杀进程,即使加了这个列表中,后续进程也无法自启动。  
  17. OPPO【ColorOS】  
  18. 冻结应用管理:需要将应用加入纯净后台,否则锁屏状态下无法及时收到消息  
  19. 自启动管理:将应用加入【自启动管理】列表的同时,还需要到设置-应用程序-正在运行里锁定应用进程,否则杀进程或者开机后进程不会开启,只能手动开启应用  

以上是各个品牌手机需要用户开启的设置,一般都是需要在自启动管理中添加你的应用就行,qq、微信就是系统官方添加进去的。在代码中可以引导用户进入到自启动管理界面中:

获取品牌的系统:http://blog.csdn.net/jin_qing/article/details/53087164

打开自启动页面:

[java]  view plain  copy
  1. /*打开自启动管理页*/  
  2.     public static void openStart(Context context){  
  3.         if(Build.VERSION.SDK_INT < 23){  
  4.             return;  
  5.         }  
  6.         String system = getSystem();  
  7.         Intent intent = new Intent();  
  8.         if(system.equals(SYS_EMUI)){//华为  
  9.             ComponentName componentName = new ComponentName("com.huawei.systemmanager","com.huawei.systemmanager.startupmgr.ui.StartupNormalAppListActivity");  
  10.             intent.setComponent(componentName);  
  11.         }else if(system.equals(SYS_MIUI)){//小米  
  12.             ComponentName componentName = new ComponentName("com.miui.securitycenter""com.miui.permcenter.autostart.AutoStartManagementActivity");  
  13.             intent.setComponent(componentName);  
  14.         }  
  15.         try{  
  16.             context.startActivity(intent);  
  17.         }catch (Exception e){//抛出异常就直接打开设置页面  
  18.             intent=new Intent(Settings.ACTION_SETTINGS);  
  19.             context.startActivity(intent);  
  20.         }  
  21.     }  

猜你喜欢

转载自blog.csdn.net/wjw_java/article/details/79057862