Parse.com提供了工具来做你想做的事情,基本的产品是免费的。 (披露:我不在那里工作 - 我刚刚在内部演示应用程序上使用他们的产品)。
在您的主要活动,例如,你可以添加:
@Override
public void onPause() {
super.onPause();
ParseUser user = /* however you want to log in, etc */;
user.put("wantMessages", "no");
}
@Override
public void onResume() {
super.onResume();
ParseUser user = /* however you want to log in, etc */;
user.put("wantMessages", "yes");
}
现在你可以send messages from your server像这样:
curl -X PUT \
-H "X-Parse-Application-Id: XWMoibK5LL86NsU2GIy02ozXx2YiggG4kJL9q4Eg" \
-H "X-Parse-REST-API-Key: yIIdNdZRSuZxeKpa7a1CyjxrAORMJ5mtcC4BQdE1" \
-H "Content-Type: application/json" \
-d '{
"where": {
"wantMessages": "yes"
},
"data": {
"new-data-url": "https://download.from.here/data.txt"
}
}' \
https://api.parse.com/1/push
因此,只有在前台应用程序的用户将获得消息。
你看过[Parse.com](https://www.parse。COM /文档/ push_guide#选项数据/ Android的)?它们允许您发送没有“alert”字符串的消息,这意味着它不会出现在通知中心,但是[您的应用程序可以根据需要处理消息](https://www.parse.com/docs/push_guide#接收响应/ Android设备)。请注意,他们在引擎盖下使用GCM。 – 2014-10-02 02:09:42
一些用户每周只能在应用中使用10分钟。我不希望每天24小时每4-6分钟向这些设备发送通知。我只想在应用程序处于前台时进行更新。解析只是另一个系统来传递相同的信息,我也在看亚马逊SNS – karlwbloedorn 2014-10-02 02:28:11
一种方法是[使用高级定位](https://www.parse.com/docs/push_guide#sending-queries/REST)和设置当您的应用处于前台时,将“wantMessages”标志设置为“true”。 – 2014-10-02 02:35:27