首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析Push -如何在接收到Android上的推送时自动打开一个活动而不需要用户操作

解析Push -如何在接收到Android上的推送时自动打开一个活动而不需要用户操作
EN

Stack Overflow用户
提问于 2014-03-05 17:03:42
回答 2查看 5.7K关注 0票数 4

我有一个要求(android),当收到推送通知时,我的应用程序应该自动运行它的主要活动,而不需要用户点击系统托盘中的通知。我有一张显示当前位置的地图,但在推送中,我将收到一个位置,我需要在主活动中使用我的地图,在接收到推送时将相机移动到当前接收的位置,并使用自定义声音通知用户。所有这些都应该在用户不点击任何东西的情况下发生。请帮帮忙。提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-12 11:58:07

是的,有可能。Parse.com文档说:

您还可以指定在收到推送通知时在后台触发的意图。这将允许您的应用程序为通知执行自定义处理,并且无论您是否选择显示系统托盘消息都可以使用。若要实现自定义通知处理,请将推送通知数据字典中的Action条目设置为要触发的意图操作。Android指南建议您在操作前加上包名,以避免与其他正在运行的应用程序发生命名空间冲突。

因此,您以这种方式发送推送通知:

代码语言:javascript
复制
JSONObject data = new JSONObject("{\"action\": \"com.example.UPDATE_STATUS\""}));

ParsePush push = new ParsePush();
push.setData(data);
push.sendPushInBackground();

然后,在您的AndroidManifest.xml寄存器中,每当收到带有com.example.UPDATE_STATUS操作参数的推送通知时,将调用一个广播接收器:

代码语言:javascript
复制
<receiver android:name="com.example.MyBroadcastReceiver" android:exported="false">
  <intent-filter>
    <action android:name="com.example.UPDATE_STATUS" />
  </intent-filter>
</receiver>

在广播接收器中,您可以启动一个新的活动:

代码语言:javascript
复制
public class MyBroadcastReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
    context.startActivity(new Intent(context, MyActivity.class));
  }
}
票数 10
EN

Stack Overflow用户

发布于 2015-02-27 13:35:05

警告@makovkastar,自V1.8版本以来发生了重大变化。例如:不再使用com.example.UPDATE_STATUS。

推送通知指南现在更清楚了:https://www.parse.com/tutorials/android-push-notifications

这是ParsePushBroadcastReceiver子类:https://gist.github.com/panchicore/97d5ad25842258576109这个答案有一个很好的教程来发送/接收本地广播:https://stackoverflow.com/a/8875292/155293

基本上,当设备中接收到推送时,将调用onPushReceive,在这种方法中,使用LocalBroadcastManager在应用程序中创建一些内容,例如,向聊天室添加一条新消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22204326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档