@Override public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); Log.d(TAG, "onReceive - " + intent.getAction() + ", extras: " + printBundle(bundle)); if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) { Log.d(TAG, "register successfully"); } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) { Log.d(TAG, "ACTION_MESSAGE_RECEIVED: "); } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) { Log.d(TAG, "ACTION_NOTIFICATION_RECEIVED"); } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) { Intent newIntent = new Intent(); newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); String extra = bundle.getString(JPushInterface.EXTRA_EXTRA); String channel = null, articleId = null; if (null != extra) { JSONObject jsonData = null; try { jsonData = new JSONObject(extra); channel = jsonData.getString(Constants.PUSH_KEY_CHANNEL); articleId = jsonData.getString(Constants.PUSH_KEY_ARITICLE_ID); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (null == channel || null == articleId) { newIntent.setClass(context, NotificationDetailActivity.class); String title = bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE); String content = bundle.getString(JPushInterface.EXTRA_ALERT); newIntent.putExtra(Constants.EXTRA_NAME_NOTIFCATION_TITLE, title); newIntent.putExtra(Constants.EXTRA_NAME_NOTIFCATION_CONTENT, content); } else if (channel.equals(Constants.CHANNEL_NAME_ACTIVITY)) { newIntent.setClass(context, HuodongDetailActivity.class); newIntent.putExtra("id", articleId); } else if (channel.equals(Constants.CHANNEL_NAME_EXCHANGE)) { newIntent.setClass(context, JiaoliuDetailActivity.class); newIntent.putExtra("id", articleId); } context.startActivity(newIntent); } else { Log.d(TAG, "Unhandled intent - " + intent.getAction()); } }
@Override public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); Log.d(TAG, "onReceive - " + intent.getAction()); if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) { System.out.println("JPush用户注册成功"); } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) { System.out.println("收到了自定义消息。消息内容是:" + bundle.getString(JPushInterface.EXTRA_MESSAGE)); // 自定义消息不会展示在通知栏,完全要开发者写代码去处理 } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) { System.out.println("收到了通知"); // 在这里可以做些统计,或者做些其他工作 } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) { System.out.println("用户点击打开了通知 " + bundle.getString(JPushInterface.EXTRA_MESSAGE)); // 在这里可以自己写代码去定义用户点击后的行为 openNotification(context, bundle); } else { Log.d(TAG, "Unhandled intent - " + intent.getAction()); } }
@Override public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); String extra = bundle.getString(JPushInterface.EXTRA_EXTRA); Log.d("TAG", "extra:" + extra); sp = context.getSharedPreferences("PUSH", Context.MODE_PRIVATE); editor = sp.edit(); // programnames = sp.getStringSet("programname", null); if (!CommonUtils.isEmpty(extra)) { // editor.putString("extra", extra); // editor.commit(); try { JSONObject extraJson = new JSONObject(extra); if (null != extraJson && extraJson.length() > 0) { String module = extraJson.getString("module"); // 保存推送消息 if ("HdcommentReply".equals(module)) { programnames = sp.getStringSet("programname", new HashSet<String>()); sconnected_uids = sp.getStringSet("sconnected_uid", new HashSet<String>()); String programname = extraJson.getString("programname"); if (extraJson.has("sconnected_uid")) { String sconnected_uid = extraJson.getString("sconnected_uid"); sconnected_uids.add(sconnected_uid); editor.putStringSet("sconnected_uid", sconnected_uids); } editor.putBoolean("HdcommentReply", true); programnames.add(programname); editor.putStringSet("programname", programnames); editor.commit(); } else if ("StcollectReply".equals(module)) { editor.putBoolean("StcollectReply", true); editor.commit(); } else if ("LatestNotification".equals(module)) { editor.putBoolean("LatestNotification", true); editor.commit(); } else if ("AwardNotification".equals(module)) { editor.putBoolean("AwardNotification", true); editor.commit(); } else if ("AgentNotification".equals(module)) { editor.putBoolean("AgentNotification", true); editor.commit(); } // 处理推送结果 if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) { // String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID); // Log.d("TAG", "[MyReceiver] 接收Registration Id : " + regId); // send the Registration Id to your server... } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) { // Log.d("TAG", "[MyReceiver] 接收到推送下来的自定义消息: " + // bundle.getString(JPushInterface.EXTRA_MESSAGE)); // processCustomMessage(context, bundle); } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) { // Log.d("TAG", "[MyReceiver] 接收到推送下来的通知"); // int notifactionId = bundle.getInt(JPushInterface.EXTRA_NOTIFICATION_ID); // Log.d(TAG, "[MyReceiver] 接收到推送下来的通知的ID: " + // notifactionId); } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) { Log.d("TAG", "[MyReceiver] 用户点击打开了通知"); Intent in = new Intent(); // 打开自定义的Activity if ("AgentNotification".equals(module)) { in.setClass(context, MyMessageActivity.class); } else { in.setClass(context, WelcomeActivity.class); } // i.putExtras(bundle); // Receive不是activity,需要此项设置,否则不能跳转 in.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(in); } else if (JPushInterface.ACTION_RICHPUSH_CALLBACK.equals(intent.getAction())) { // Log.d(TAG, "[MyReceiver] 用户收到到RICH PUSH CALLBACK: " + // bundle.getString(JPushInterface.EXTRA_EXTRA)); // 在这里根据 JPushInterface.EXTRA_EXTRA // 的内容处理代码,比如打开新的Activity, // 打开一个网页等.. } else if (JPushInterface.ACTION_CONNECTION_CHANGE.equals(intent.getAction())) { // boolean connected = // intent.getBooleanExtra(JPushInterface.EXTRA_CONNECTION_CHANGE, false); // Log.w(TAG, "[MyReceiver]" + intent.getAction() + " // connected state change to " + connected); } else { // Log.d(TAG, "[MyReceiver] Unhandled intent - " + // intent.getAction()); } } } catch (JSONException e) { } } // System.out.println("resextraeidver Programnames === ===" + // programnames); // Log.d("TAG", "[MyReceiver] onReceive - " + intent.getAction() + ", // extras: " + printBundle(bundle)); // Log.d(TAG, "[MyReceiver] 接收extra : " + extra); }