第4章:通知与服务

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

  • 通知的功能可以将提示信息显示在设备的通知栏中
  • 服务则是在后台执行的主要形式

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类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值