- 通知的功能可以将提示信息显示在设备的通知栏中
- 服务则是在后台执行的主要形式
1. 通知
1.1 创建简单的通知
1.1 NotificationManager:是管理通知的主类
1.2 代码中使用etSystemService()方法获取相应的系统服务对象,使用通知时,需要指定NOTIFICATION_SERVICE参数
1.3 使用android支持库中的NotificationCompat类创建Notification对象,这样可以得到更好的兼容性
1.4 使用Builder()方法创建Notification对象后,还使用了以下基本设置方法
-
setContentTitle(“新的通知”):设置通知标题
-
setContentText(“一个小小的通知”):设置通知正文
-
setWhen(System.currentTimeMillis()):设置通知时间,代码中使用System.currentTimeMillis()方法获取系统时间的毫秒数
-
setSmallIcon(R.mipmap.ic_launcher):设置小图标,即显示在设备栏中的图标
-
setLargeIcon():设置大图标,即显示在下拉通知栏中的图标
1.5 代码最后,使用NotificationManager对象的notify()方法发送通知
- 参数1:通知的标识ID,如果应用中有多个通知,需要使用不同的ID
- 参数2:指定要发送的对象
package com.syl.notificationdemo;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.NotificationCompat;
import android.app.Notification;
import android.app.NotificationManager;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button)findViewById(R.id.btn1);
btn.setOnClickListener(this);
}
@Override
public void onClick(View v){
//创建通知
if(v.getId()==R.id.btn1){
NotificationManager m = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
NotificationCompat.Builder nb = new NotificationCompat.Builder(this);
nb.setContentTitle("新的通知");
nb.setContentText("一个小小的通知");
nb.setWhen(System.currentTimeMillis());
nb.setSmallIcon(R.mipmap.ic_launcher);
nb.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.mipmap.ic_launcher));
Notification n = nb.build();
m.notify(1,n);
}
}
}

1.2 响应通知操作
略

1.3 更多设置
关于显示通知的效果,介绍一些常用功能
- setVibrate()方法:设置通知的震动效果,需要注册权限
- setSound()方法;设置通知的提示音
- setPriority()方法:设置通知的优先级
2. 服务
服务是在后台执行的任务,服务可以用Service和IntentService来创建
2.1 Service类



通知与服务:Android后台交互的艺术
本文详细介绍了Android中如何创建简单通知,响应操作及高级设置,同时探讨了Service类在后台任务中的应用,涵盖了NotificationManager、NotificationCompat和Service的使用示例。
1万+





