我想在用户收到应用内请求时通知(创建通知)用户。
我正在使用带有 PHP 的 MySQL 数据库 - 常规的东西。
只要 user_id_req 字段的值从 0 更改为 1,应用程序就应创建通知。我可以在 App Start 上使用 NotificationManager
来完成此操作并检查数据库,但我想实时执行,这意味着值一旦发生变化。
我应该使用 GCM 来处理这些请求还是使用在后台运行并每分钟检查数据库的服务?
最佳答案
您应该为此绝对使用 GCM,而不是轮询模型。
每分钟发出一次网络请求是非常糟糕的做法 - 这将导致大量电池使用。此外,除非您的服务持有唤醒锁(这会真正耗尽电池),否则设备最终将进入休眠状态,并且您的请求将停止,直到用户再次唤醒设备。另一个问题是,除非您注册应用程序以唤醒并在启动时触发服务,否则每当用户重新启动设备时,您的轮询就会停止。
碰巧大多数 GCM 教程也会让您创建一个 Service
。不要让这让你感到困惑。如果您只向用户显示通知,则不需要 Service
,只需一个简单的 BroadcastReceiver
即可正常工作。
关于安卓通知: GCM or Service,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27238870/