我正在开发pubnub android api中的高级项目。示例应用程序在收到消息时使用烘烤。但是,我希望在收到消息时启动另一个活动。基本上,它是一个家庭报警系统,消息来自树莓派。收到消息后,应显示一个新活动,用户可以在其中输入用于锁定系统以便能够停止警报的密码。只有在应用程序运行时,一切都按预期工作。即使收到消息,我也无法在应用程序未运行时显示新活动。我怎样才能做到这一点?我在runOnUiThread()中启动报警活动,然后设置startAlarm.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP)如本文所述:Start Activity from a Broadcast Receiver。这对我不起作用。
答案 0 :(得分:1)
我建议您使用Google云消息传递(作为推送通知服务)。
当Raspberry中发生事件时,您可以使用GCM向Android设备发送消息。消息传递方法比创建周期性任务更好,以检查是否有新消息。
在示例中,他们在通知栏中创建了通知,但您可以启动新活动而不是创建通知。在此链接中,您可以找到如何开始新活动: http://developer.android.com/training/basics/firstapp/starting-activity.html
在树莓方面,将信息发送到设备的最简单方法可能就是使用curl:
卷曲-X POST \ -H"授权:key = YOUR_AUTHORIZATION_KEY" \ -H" Content-Type:application / json" \ -d' { " registration_ids":[ " YOUR_DEVICE_TOKEN" ] "数据":{ "消息":" YOUR_MESSAGE" } }' \ https://android.googleapis.com/gcm/send