Notification使用及打开另一个APP或者Activity

public class MyBroadCastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        NotificationManager manger = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
        Notification.Builder builder = new Notification.Builder(context);
        //setSmallIcon属性必须设置,否则通知不显示
        builder.setSmallIcon(R.mipmap.ic_launcher);
        builder.setContentTitle("标题");
        builder.setContentText("内容");
        //点击之后消失
        builder.setAutoCancel(true);

        //1、开启另一个APP
//        Intent i  = context.getPackageManager().getLaunchIntentForPackage("com.ws.mall.recyclerviewpager");
//        PendingIntent pendingIntent = PendingIntent.getActivity(context,0,i,PendingIntent.FLAG_UPDATE_CURRENT);
//        builder.setContentIntent(pendingIntent);


        //2、开启另一个APP的某个Activity
//        Intent i = new Intent();
//        ComponentName c = new ComponentName("com.ws.mall.recyclerviewpager","com.ws.mall.recyclerviewpager.activity.PullAndLoadActivity");
//        i.setComponent(c);
//        PendingIntent pendingIntent = PendingIntent.getActivity(context,0,i,PendingIntent.FLAG_UPDATE_CURRENT);
//        builder.setContentIntent(pendingIntent);


        //3、开启另一个APP并开启他的某个Activity(使用方法二就可以实现效果,如果按照下面的方式会使APP开启两次)
//        Intent[] intents = new Intent[2];
//        Intent i1 = context.getPackageManager().getLaunchIntentForPackage("com.ws.mall.recyclerviewpager");
//        Intent i2 = new Intent();
//        ComponentName c = new ComponentName("com.ws.mall.recyclerviewpager", "com.ws.mall.recyclerviewpager.activity.PullAndLoadActivity");
//        i2.setComponent(c);
//        intents[0] = i1;
//        intents[1] = i2;
//        PendingIntent p = PendingIntent.getActivities(context, 1, intents, PendingIntent.FLAG_UPDATE_CURRENT);
//        builder.setContentIntent(p);

        //4、开启本应用的activity
//        Intent i = new Intent(context,Main2Activity.class);
//        PendingIntent p = PendingIntent.getActivity(context, 1, i, PendingIntent.FLAG_UPDATE_CURRENT);
//        builder.setContentIntent(p);

        //必须在builders设置完之后在获取,否则没有效果点击和消失的效果(通知会出现)
        Notification n = builder.build();
        manger.notify(0, n);

    }
}

针对与2要额外注意些,还要添加额外的工作

1、在Manifest中添加要开启的activity的注册
<activity android:name="com.ws.mall.recyclerviewpager.activity.PullAndLoadActivity"/>

2、准备开启的activity要在Manifest中添加exported属性
<activity android:name=".activity.PullAndLoadActivity"
android:exported="true"/>

3、注意3是getActivities不是上面的getActivity了,而且传人的是意图数组不是意图对象。
4、使用builder.build();方式获取Notification,这个是android6.0之后的修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值