@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());
    }
  }
Beispiel #2
0
  @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);

  }