RemoteViews remoteViews = new RemoteViews(getPackageName(),
R.layout.widget);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
this).setSmallIcon(R.drawable.ic_launcher).setContent(
remoteViews);
// Creates an explicit intent for an Activity in your app
Intent resultIntent = new Intent(this, test.class);
// The stack builder object will contain an artificial back stack for
// the
// started Activity.
// This ensures that navigating backward from the Activity leads out of
// your application to the Home screen.
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
// Adds the back stack for the Intent (but not the Intent itself)
stackBuilder.addParentStack(test.class);
// Adds the Intent that starts the Activity to the top of the stack
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(R.id.button1, resultPendingIntent);
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// mId allows you to update the notification later on.
mNotificationManager.notify(100, mBuilder.build());
发布评论
评论(4)
@erehmi 说的不错,根据厂商会有所不同。
给你举个原生android例子:
推送一般分为两种:
推送通知
透传消息
推送通知一般是推送提供商帮你已经实现基本界面交互(包括收到通知后状态栏通知消息提醒, 通知点击行为), 这类是比较常用的. 而透传消息它只负责接收, 而不管前端展示, 这种消息正好能解决题主的需求: 客户端收到透传消息后, 自己编写代码弹出自定义样式的状态栏通知.
请参考各大推送厂商的SDK文档.
iOS在8.0之后就可以自定义推送信息显示按钮, 并且通过代理监听用户对推送消息操作.
1.在UIApplication中有对推送消息进行设置的方法
2.UIUserNotificationSettings类中可以对消息添加用户行为(如: 按钮)
3.添加UIUserNotificationAction,用于用户操作.
推送截图:
代码:(参考链接)
使用自定义消息都可以做到。
题主说的这个是通知的样式,和推送关系不大。虽然推送通常也会带一个简单样式的默认通知,但是一般还是会使用自定义消息然后自己去定制通知的样式。