我能够创建推送通知.但目前我只能让人们登陆主屏幕.
如何将人员发送到特定活动?是否可以添加一些像item_id这样的参数,以便活动知道要加载哪些数据?
或者,如果某个地方有一个很好的教程,那也会很棒.我似乎无法通过谷歌搜索找到很多关于此的信息.
在我的GCMIntentService中,我有这个方法:
@Override protected void onMessage(Context ctxt,Intent message) { Bundle extras=message.getExtras(); try { String question_id = extras.getString("question_id"); // SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences( this ); // Intent intent = new Intent(ctxt,QuestionActivity.class); generateNotification(ctxt,extras.getString("message"),"New Message" ); } catch ( Exception e ) { } }
但我不知道如何更改generateNotification以指示该人应该登陆的活动.
谢谢!
解决方法
更新:
给Eran以JSON为荣,我只想详细说明.
给Eran以JSON为荣,我只想详细说明.
您可以使用数据键添加其他参数:
{ "registration_ids" : ["APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."],"data": { "stuff": "100","more": "abc" },}
然后使用intent.getExtras().getString(“stuff”)以相同的方式访问.
全是here.
然后在你的generateNotifcation()中:
private static void generateNotification(Context context,String message) { NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.ic_launcher,message,when); String title = "..."; //get id from json here and decide which activity to go to... Intent notificationIntent = new Intent(context,someClass.class); notificationIntent.putExtra("message",message); PendingIntent intent = PendingIntent.getActivity(context,notificationIntent,PendingIntent.FLAG_UPDATE_CURRENT); notification.setLatestEventInfo(context,title,intent); notification.defaults|=Notification.DEFAULT_VIBRATE; notificationManager.notify(0,notification); }