【友盟+】开发者社区

通过不同的自定义参数打开不同的activity,(通知,消息)

push更新 发表于 2016-10-9 14:54:14 |

push更新
push更新 发表于 2015-2-2 10:15:44 | 显示全部楼层 |阅读模式
package com.yongtai.o2bra;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.widget.RemoteViews;

import com.umeng.common.message.Log;
import com.umeng.message.UTrack;
import com.umeng.message.UmengBaseIntentService;
import com.umeng.message.entity.UMessage;
import com.yongtai.common.base.Config;
import com.yongtai.o2bra.buy.OrderInfoActivity;
import com.yongtai.o2bra.feedsbra.BarInfoActivity;

import org.android.agoo.client.BaseConstants;
import org.json.JSONObject;

/**
* Developer defined push intent service.
* Remember to call {@link com.umeng.message.PushAgent#setPushIntentServiceClass(Class)}.
*
* @author lucas
*/
public class MyPushIntentService extends UmengBaseIntentService {
    private static final String TAG = MyPushIntentService.class.getName();

    @Override
    protected void onMessage(Context context, Intent intent) {
        super.onMessage(context, intent);
        try {
            String message = intent.getStringExtra(BaseConstants.MESSAGE_BODY);
            UMessage msg = new UMessage(new JSONObject(message));
            UTrack.getInstance(context).trackMsgClick(msg);
            //后台传过来的参数,开发人员可根据type来启动对应的activity,type只自己定义。
            //type_id是需要将此参数传给对应的activity,需要传什么都行。
            String type =msg.extra.get("type");
            String type_id =msg.extra.get("type_id");
            Intent intent1=null;
            if("product".equals(type)){
                intent1= new Intent(context, BarInfoActivity.class);
                intent1.putExtra(Config.INTENT_PARAMS1_SERVICE, type_id);
                //启动activity必须加上Flags
                intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            }else if("purchase".equals(type)){
                intent1= new Intent(context, OrderInfoActivity.class);
                intent1.putExtra(Config.ACTIVITY_ORDER_INFO_TYPE_ID, type_id);
                intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            }
            showNotification(context, msg, intent1);
        } catch (Exception e) {
            Log.e(TAG, e.getMessage());
        }
    }
    // 通知栏显示当前播放信息,利用通知和 PendingIntent来启动对应的activity
    public void showNotification(Context context,UMessage msg,Intent intent) {
        NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
        builder.setAutoCancel(true);
        Notification mNotification = builder.build();
        mNotification.icon = R.drawable.umeng_push_notification_default_large_icon;//notification通知栏图标
        mNotification.defaults |= Notification.DEFAULT_SOUND;
        mNotification.defaults |= Notification.DEFAULT_VIBRATE ;
        //自定义布局
        RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.notification_view);
        contentView.setImageViewResource(R.id.notification_large_icon, R.drawable.umeng_push_notification_default_small_icon);
        contentView.setTextViewText(R.id.notification_title, msg.title);
        contentView.setTextViewText(R.id.notification_text, msg.text);
        mNotification.contentView = contentView;
        PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
                intent, PendingIntent.FLAG_UPDATE_CURRENT);
        //notifcation.flags = Notification.FLAG_NO_CLEAR;// 永久在通知栏里
        mNotification.flags = Notification.FLAG_AUTO_CANCEL;
        //使用自定义下拉视图时,不需要再调用setLatestEventInfo()方法,但是必须定义contentIntent
        mNotification.contentIntent = contentIntent;
        mNotificationManager.notify(103, mNotification);
    }
}





上一篇:请问一个应用最多可设置多少个标签?
下一篇:已上线的App,无法创建带Push Notifications的App ID.求破


Kiwa
Kiwa 发表于 2016-10-9 14:54:14 | 显示全部楼层
这个我感觉和UmengNotificationClickHandler差不多  ,用UmengNotificationClickHandler 也应该可以实现一样的效果吧?
您需要登录后才可以发帖 登录 | 立即注册

本版积分规则

发表主题

精彩推荐

电力电缆故障检测案例
案例分析
电抗器支撑绝缘子尖端放电缺陷问题报告
案例分析 ----电抗器支撑绝缘子尖端放电
浅谈一次设备和二次设备
浅谈一次设备和二次设备 上海均赫检测技术有限公司----------------------

关注我们

新浪微博
微信

欢迎关注友盟官方微博微信!

在线客服
返回顶部 返回列表