我有一个要求(android),当收到推送通知时,我的应用程序应该自动运行它的主要活动,而不需要用户点击系统托盘中的通知。我有一张显示当前位置的地图,但在推送中,我将收到一个位置,我需要在主活动中使用我的地图,在接收到推送时将相机移动到当前接收的位置,并使用自定义声音通知用户。所有这些都应该在用户不点击任何东西的情况下发生。请帮帮忙。提前谢谢。
发布于 2014-03-12 11:58:07
是的,有可能。Parse.com文档说:
您还可以指定在收到推送通知时在后台触发的意图。这将允许您的应用程序为通知执行自定义处理,并且无论您是否选择显示系统托盘消息都可以使用。若要实现自定义通知处理,请将推送通知数据字典中的Action条目设置为要触发的意图操作。Android指南建议您在操作前加上包名,以避免与其他正在运行的应用程序发生命名空间冲突。
因此,您以这种方式发送推送通知:
JSONObject data = new JSONObject("{\"action\": \"com.example.UPDATE_STATUS\""}));
ParsePush push = new ParsePush();
push.setData(data);
push.sendPushInBackground();然后,在您的AndroidManifest.xml寄存器中,每当收到带有com.example.UPDATE_STATUS操作参数的推送通知时,将调用一个广播接收器:
<receiver android:name="com.example.MyBroadcastReceiver" android:exported="false">
<intent-filter>
<action android:name="com.example.UPDATE_STATUS" />
</intent-filter>
</receiver>在广播接收器中,您可以启动一个新的活动:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
context.startActivity(new Intent(context, MyActivity.class));
}
}发布于 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在应用程序中创建一些内容,例如,向聊天室添加一条新消息。
https://stackoverflow.com/questions/22204326
复制相似问题