简介
- 通知是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

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

被折叠的 条评论
为什么被折叠?



