Android基础之Notification通知 | PendingIntent | 带源码

本文详细介绍了Android通知的创建过程,包括通过Activity、BroadcastReceiver和服务,并展示了如何设置通知标题、内容、时间、图标及交互行为。涵盖了Oreo及以上版本的Notification Channel和自定义行为。

简介

  • 通知是Android系统中比较有特色的功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现
  • 既可以在活动里创建,又可以在广播接收器里创建,还可以在服务里创建
  • 首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystemService()方法获取到
  • getSystemService()方法接收一个字符串参数用于确定获取系统的哪个服务,我们传入Context.NOTIFICATION_SERVICE即可
NotificationManager manager = getSystemService(Context.NOTIFICATION_SERVICE);
  • 接下来使用BUilder构造器来创建Notification对象

setContentTitle():用于指定通知的标题内容,下拉系统状态栏就可以看到这部分内容

setContentText():用于指定通知的正文内容,同上

setWhen():用于指定通知被创建的时间,以毫秒为单位,当下拉状态栏时,这里指定的时间会显示在相应的通知上

setSmallIcon():用于设置通知的小图标,注意只能使用纯alpha图层的图片进行设置,小图标会显示在状态栏上

setLargeIcon():用于设置通知的大图标,当下拉系统状态栏时,就可以看见

Notification notification = new NotificationCompat.Builder(context)
	.setContentTitle("This is content title")
	.setContentText("This is content text")
	.setWhen(System.currentTimeMillis())
	.setSmallIcon(R.drawable.small_icon)
	.setLargeIcon(BitmapFactory.decodeResource(getResource(),R.drawable.large_icon))
	.build();
  • 然后调用NotificationManager的notify方法就可以将通知显示出来

notify()接收两个参数,第一个参数id,要保证每个通知指定的id都不一样,第二个参数Notification对象

manager.notify(1,notification);

实例

  • 修改xml
<Button
	        android:id="@+id/send_notice"
	        android:layout_width="261dp"
	        android:layout_height="56dp"
	        android:text="@string/send_notice"
	        android:onClick="sendNotice"
	        app:layout_constraintBottom_toBottomOf="parent"
	        app:layout_constraintEnd_toEndOf="parent"
	        app:layout_constraintStart_toStartOf="parent"
	        app:layout_constraintTop_toTopOf="parent"
	        app:layout_constraintVertical_bias="0.342" />
  • 修改MainActivity
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle sa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值