为了让 APP 及时推送通知,不能清后台?

2017-02-09 10:25:48 +08:00
 wuxiao2522
刚从 IOS 换到安卓 7.0 (华为 P9 PLUS ),自带的“手机管家” APP 里面有“自启管理”和“锁屏清理应用”两个功能,为了保证有些应用能及时推送通知,必须不清理此类 APP 才能及时通知(就算不清理,有些时候也不通知)。我想换回 IOS 了,就算删除后台卡片,推送也正常(真爽)!为了让 APP 推送通知就一直让他后台运行,耗电不说,还耗资源呀,还去启动其它应用。。。怀恋 IOS 的推送机制了!
29787 次点击
所在节点    Android
118 条回复
skylancer
2017-02-10 09:41:55 +08:00
@HongJay 推送服务器有部分是被墙的
skylancer
2017-02-10 10:00:17 +08:00
我翻了一堆 FCM 文档
看起来在 FCM 里 Google 决定添加让 FCM 来直接显示通知,网站写的是应用在后台执行的情况下,但这种情况的工作方式是由 FCM 来显示通知的,所以应该可以看作届时不需要应用本身在被拉起的状态下即可收到应用通知

https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages
Syaoran
2017-02-10 10:00:47 +08:00
无法理解频繁清后台的行为,程序驻留后台不是为了更快的用户体验么?现在内存 4G 、 6G 的不够用? iPhone 限制后台是因为内存太小,明明是缺点果粉眼里变优点了
如果说程序在后台做些不为人知的小动作,那就是节操问题了。国内 rom 有的过于“优化”会无脑清后台,你把需要留住的程序“加锁”就能防止进程被杀
有了 doze 模式后待机耗电也好很多,一晚上掉电 1%而已。
我想说这不是放弃 Android 的理由,果粉脑海里都是根深蒂固的 ios 思维,也许真的只能一辈子用 iPhone 了
skylancer
2017-02-10 10:04:51 +08:00
@Syaoran 因为主要是就算在 6.0 doze 也是个半残功能,所以日常使用清后台也是没办法的选择(睡觉不算)
flyz
2017-02-10 10:05:47 +08:00
看到 ios 每个应用都有推送,不觉得不点就难受么,还是喜欢安卓多点,就主要常用的几个推送,其他 app 我也没时间设置推,送不推送最好, miui 也不会让它们相互唤醒,挺好的。
0987363
2017-02-10 10:12:37 +08:00
@paranoiagu 可以用,我就是用的 play 版, 在翻墙环境下,微信已经休眠,能够收到 gcm 推送,然后唤醒微信,前提是不要切断 gcm 唤醒
morethansean
2017-02-10 10:13:03 +08:00
@skylancer 我觉得你们指的不是一个东西。人家说的拉起是说应用进程被杀掉或者例如 doze 掉的情况下(非 stopped ) gcm 能唤醒,就是说即便完全没有 background service 也能唤醒。你说的是通知的显示其实还是应用自己 code 弄出来的,这在 stopped 的状态下是不行的( force stop ).
0987363
2017-02-10 10:16:26 +08:00
@Syaoran s7e 的 4g 内存表示真的不够国内 app 用的,一次能唤醒几十个
skylancer
2017-02-10 10:21:59 +08:00
@morethansean 应用被杀掉 GCM 无法唤醒。通知显示是 FCM 来处理,我建议你可以去看看我附带的链接
morethansean
2017-02-10 10:39:46 +08:00
@skylancer 应用被杀掉可以 GCM 唤醒, GCM 无法唤醒的是处于 stopped 状态的应用。

Stopped state is:

when the app is initially installed (before the user runs something in the app) or
after a Force Stop.

你所谓的杀掉是什么意思?
morethansean
2017-02-10 10:40:20 +08:00
@skylancer 另外讨论 GCM 就讨论 GCM ,扯 FCM 进来干吗?你给的链接我早就看过了。
honeycomb
2017-02-10 10:50:55 +08:00
@morethansean

GCM 目前的名字叫 FCM ,它们是一回事。

你说的是对的, force stop 或者首次安装未运行的情况下, GCM 应该无法唤醒这个应用

@Syaoran

此后台和彼后台不完全一样

我们不喜欢见到的后台,往往指的是:
1 ,应用在后台(甚至利用一些漏洞把自己提升到前台状态)运行不需要的工作,比如用户不需要的 /可以用 GCM 替代的推送服务。
2 ,不需要地被其它的应用唤醒(通常是一些所谓的保活措施导致的)

我们喜欢见到的后台:我们离开应用界面,且系统内存压力小时,整个应用的进程和其中需要的资源依然存在于内存,但整个进程处于暂停的状态(它基本上只会消耗内存自动刷新所需的电量)。 Android 把这种情况标注为"已缓存的应用"。这个情况下返回应用会非常快速。
skylancer
2017-02-10 12:02:34 +08:00
@morethansean 我说的杀掉就是指的 Force Stop 。 FCM 是用来取代 GCM 的,我提到 FCM 并没有不对的地方
morethansean
2017-02-10 12:14:03 +08:00
@skylancer 杀掉应用跟 force stop 并不等价。
winglight2016
2017-02-10 15:33:36 +08:00
@fairyStage 不行呀, google 全家桶服务是最耗电的部分了,有时候会达到 25%,总共才消耗了 40%,但是我要是关了又会有其他依赖服务不能启动,好在这种耗电不一定总这么多,不然真觉得 android 没法用了——我用的是 sony xz
winglight2016
2017-02-10 15:41:51 +08:00
@Syaoran 你高估国内 APP 的节操了,不杀后台进程的结果就是耗电+卡顿,我都是通过开发者模式把后台进程全部禁掉的方式来省电,不然手机连主界面都卡顿
morethansean
2017-02-10 15:52:27 +08:00
@winglight2016 Play Services 出现在耗电列表里过高一般只有一种可能:梯子不正常。
finab
2017-02-10 15:59:53 +08:00
@kitalphaj 年轻, iOS 应用可以通过远程推送唤醒 APP 然后执行代码, QQ 就经常这样做
JackyBao
2017-02-10 16:18:41 +08:00
感觉上面很多人多没用过现在的三星,这里的现在特指 2016 年以后出的三星的国行手机。
自带的智能管理器超级好用,完全不用操心后台这种事情。也不用去 root ,自带的 samsung pay 也是绝对的黑科技。

推荐各位试试去年出的 A 系列, A7 A9 都挺好的。
winglight2016
2017-02-10 16:20:39 +08:00
@morethansean 关键是不可能也没必要一直保持翻墙状态啊,特别是使用手机网络的时候

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/339192

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX