安卓通知: GCM or Service

标签 android mysql notifications android-service google-cloud-messaging

我想在用户收到应用内请求时通知(创建通知)用户。
我正在使用带有 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/

相关文章:

java - Spring事务和多表回滚

ios - 如果在初始化期间发布通知,则未收到通知?

android - 无法在 nexus 5 marshmallow 中从 Google 照片应用中选择照片和视频

java - 如何增加zxing的扫描范围?

mysql - 如何在pandas中使用to_sql

android - 检查是否存在相同id的通知?

Android通知大图标规范?

java - 从后向读取Sql数据库

android - 如何在 ionic 应用程序(cordova/phonegap)中获得完整的异常堆栈跟踪而不是一行?

c# - 线程卡在 MySqlCommand.ExecuteNonQuery() 中