Android中Notification、pendingIntent+alarm简单使用

本文详细介绍了在Android应用中如何使用Notification、PendingIntent以及AlarmManager。首先讲解了Notification的创建和显示过程,接着阐述了PendingIntent在启动Activity和发送广播中的应用,并结合AlarmManager设置定时任务的实例,展示了如何实现定时触发特定操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、notification使用:

PendingIntent中
getActivity(Context, int, Intent, int) 跳转到一个activity组件

getBroadcast(Context, int, Intent, int) 发送一个广播组件

getService(Context, int, Intent, int) 启动一个服务组件

/** Notification构造器 */
NotificationCompat.Builder mBuilder;
int id;
mBuilder = new NotificationCompat.Builder(context);
mBuilder.setContentTitle(title)
        .setContentText(content)
        .setAutoCancel(true)
        //          .setNumber(number)//显示数量
        .setTicker("title")//通知首次出现在通知栏,带上升动画效果的
        .setWhen(System.currentTimeMillis())//通知产生的时间,会在通知信息里显示
        .setPriority(Notification.PRIORITY_DEFAULT)//设置该通知优先级
        //          .setAutoCancel(true)//设置这个标志当用户单击面板就可以让通知将自动取消
        .setOngoing(false)//ture,设置他为一个正在进行的通知。他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接)
        .setDefaults(Notification.DEFAULT_VIBRATE)//向通知添加声音、闪灯和振动效果的最简单、最一致的方式是使用当前的用户默认设置,使用defaults属性,可以组合:
        //Notification.DEFAULT_ALL  Notification.DEFAULT_SOUND 添加声音 // requires VIBRATE permission
        .setSmallIcon(R.mipmap.ic_launcher);




PendingIntent pendingIntent = PendingIntent.getActivity(context,id,resultIntent, intentCancelCurrent ? PendingIntent.FLAG_CANCEL_CURRENT : PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(pendingIntent);
NotificationManager mNotificationManager= (NotificationManager)context.getSystemService(NOTIFICATION_SERVICE);
mNotificationManager.notify(id, mBuilder.build());
2、pendingIntent+alarm使用:

//AlarmNotificationReceiver  广播,如上面的代码可以发送通知等
Intent intent=new Intent(App.getInstance(), AlarmNotificationReceiver.class);
Model notificationModel=new Model(title,content,classType,json,requestCode);
// Android 6.0 版本开始, PendingIntent不能保证支持传递Parcelable
intent.putExtra("notificationModel", ParcelableUtil.marshall(notificationModel));

// 创建PendingIntent对象
PendingIntent pi = PendingIntent.getBroadcast(
        App.getInstance(), requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
tempPi=pi;
// 获取AlarmManager对象
AlarmManager aManager = (AlarmManager)
        App.getInstance().getSystemService(ALARM_SERVICE);
// 设置AlarmManager将在Calendar对应的时间启动指定组件
if (aManager != null) {
 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
     alarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP,    SystemClock.elapsedRealtime(), pendingIntent);
 }else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        aManager.setExact(AlarmManager.RTC_WAKEUP, data, pi);
    } else {
        aManager.set(AlarmManager.RTC_WAKEUP,
                data, pi);
    }
}
AlarmManager请转: 关于使用AlarmManager的注意事项

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值