Android notification

xiaoxiao2021-02-27  117

1.悬挂式Notification

public void suspendingNotification(Context context, String title, String content) { Log.w(TAG, "show ui update notification"); mContext = context; NotificationManager manager = (NotificationManager) mContext.getSystemService(NOTIFICATION_SERVICE); //NormalIntent Intent intent = mContext.getPackageManager().getLaunchIntentForPackage(mContext.getPackageName()); //PendingIntent PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, 0); Notification notification; Notification.Builder builder = new Notification.Builder(mContext) .setContentTitle(title) .setContentText(content) .setSmallIcon(R.drawable.icon) .setLargeIcon(BitmapFactory.decodeResource(mContext.getResources(), R.drawable.icon)); //Suspending if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Log.w(TAG, "show hanging notification"); builder.setContentText(content) .setFullScreenIntent(pendingIntent, true); } notification = builder.build(); //NotificationIntent notification.contentIntent = pendingIntent; //ClearWhenClicked notification.flags = Notification.FLAG_AUTO_CANCEL; manager.notify(0, notification); }

2. 普通Notification

public void normalNotification(Context context, String title, String content) { mContext = context; NotificationManager manager = (NotificationManager) mContext.getSystemService(NOTIFICATION_SERVICE); //NormalIntent Intent intent = mContext.getPackageManager().getLaunchIntentForPackage(mContext.getPackageName()); //PendingIntent PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, 0); Notification notification = new Notification.Builder(mContext) .setContentTitle(title) .setContentText(content) .setSmallIcon(R.drawable.icon) .setLargeIcon(BitmapFactory.decodeResource(mContext.getResources(), R.drawable.icon)).build(); notification.contentIntent = pendingIntent; manager.notify(0, notification); }

3. 自定义布局Notification

public void customNotification(Context context, String packageName, String title, String content) { mContext = context; Intent intent; NotificationManager manager = (NotificationManager) mContext.getSystemService(NOTIFICATION_SERVICE); RemoteViews remoteViews = new RemoteViews(packageName, R.layout.notification); remoteViews.setTextViewText(R.id.title, title); remoteViews.setTextViewText(R.id.content, content); intent = new Intent(); intent.setClass(mContext, MainActivity.class); intent.putExtra("target", "ok"); PendingIntent okIntent = PendingIntent.getActivity(mContext, R.id.sml, intent, PendingIntent.FLAG_UPDATE_CURRENT); remoteViews.setOnClickPendingIntent(R.id.sml, okIntent); intent = new Intent(); intent.setClass(mContext, MainActivity.class); intent.putExtra("target", "cancel"); PendingIntent cancelIntent = PendingIntent.getActivity(mContext, R.id.cancel, intent, PendingIntent.FLAG_UPDATE_CURRENT); remoteViews.setOnClickPendingIntent(R.id.cancel, cancelIntent); Notification notification = null; Notification.Builder builder = new Notification.Builder(mContext) .setSmallIcon(R.drawable.icon) .setPriority(Notification.PRIORITY_DEFAULT); builder.setContent(remoteViews); notification = builder.build(); if (android.os.Build.VERSION.SDK_INT >= 16) { notification.bigContentView = remoteViews; } manager.notify(1, notification); }

4. 展开/收缩Notification

public void inboxNotification(Context context, String packageName, String title, String content) { mContext = context; Notification.Builder mBuilder = new Notification.Builder(mContext) .setSmallIcon(R.drawable.icon) .setContentTitle(title) .setContentText(content); RemoteViews remoteViews = new RemoteViews(packageName, R.layout.activity_wide); Notification notification = null; notification = mBuilder.build(); if (android.os.Build.VERSION.SDK_INT >= 16) { notification = mBuilder.build(); notification.bigContentView = remoteViews; } remoteViews = new RemoteViews(packageName, R.layout.activity_slim); notification.contentView = remoteViews; NotificationManager mNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE); // mId allows you to update the notification later on. mNotificationManager.notify(1, notification); }
转载请注明原文地址: https://www.6miu.com/read-15949.html

最新回复(0)