《第一行代码-Android》学习笔记(十九)

2024-06-17 01:32

本文主要是介绍《第一行代码-Android》学习笔记(十九),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.虽然每调用一次startService方法,onStartCommand就会被执行,但实际上每个服务都只会有一个实例,所以不管调用了多少次的start,最后只要一个stopService或者stopSelf就可以停止一个服务。

 

2.Android的规定,如果既调用了startService方法又调用了bindService方法,这个时候要想服务执行onDestory方法,必须让stopServiceunbindService同时执行。

 

3.前台服务:由于服务的系统级别比较低,很有可能在系统内存不够的时候,服务被回收掉。

这个时候就可以用到前台服务。

① 前台服务与普通服务的区别就是:前台服务会一直有一个图标在系统的状态栏显示,下拉状态栏之后可以看到更加详细的信息。

② 如何创建前台服务:只要改写一下普通服务的onCreate方法即可,在里面加入一个Notification,与在其他地方创建notification不一样的是,这里使用的是startForeground()方法来展示这个notification,而不是通过notificationManager

 public void onCreate(){

       super.onCreate();

       Log.d("gu", "create");

       Notification notification = new Notification(R.drawable.ic_launcher, "Notification comes",

       System.currentTimeMillis());

       Intent intent = new Intent(this, MainActivity.class);

       PendingIntent pi = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);

       notification.setLatestEventInfo(this, "This is title", "This is content", pi);

       startForeground(1, notification);

 }

③ 当Servicedestory的时候,上面的notification也会被结束

 

4.在Service中开启线程执行耗时任务之后,如果任务执行成功了,如何让服务停止:

可以再子线程结束的地方执行:stopSelf()方法;

 

5.使用IntentService:这个类是个抽象类,它再其内部封装了创建子线程的过程,只要我们写一个子类继承它,就可以轻松实现在service中创建线程操作,并将一些操作放在其onHandleIntent方法中执行即可。

① IntentServiceonHandleIntent()方法中的子线程任务执行完毕之后,会自动停止服务

 

 

 

这篇关于《第一行代码-Android》学习笔记(十九)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1068110

相关文章

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析