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之后的修改。