Android Studio的代码笔记--IntentService学习
IntentService学习
- IntentService
- 常规用法
- 清单注册服务
- 服务内容
- 开启服务
IntentService
一个 HandlerThread工作线程,通过Handler实现把消息加入消息队列中等待执行,通过传递的intent在onHandleIntent中处理任务。(多次调用会按顺序执行事件,服务停止清除消息队列中的消息。)
适用:线程任务按顺序在后台执行,例如下载
不适用:多个数据同时请求
1、IntentService与Service的区别
从属性作用上来说
Service:依赖于应用程序的主线程(不是独立的进程 or 线程)。需要主动调用stopSelft()来结束服务
不建议在Service中编写耗时的逻辑和操作,否则会引起ANR;
IntentService:创建一个工作线程来处理多线程任务。在所有intent被处理完后,系统会自动关闭服务
2、IntentService与其他线程的区别
IntentService内部采用了HandlerThread实现,作用类似于后台线程;
与后台线程相比,IntentService是一种后台服务,优势是:优先级高(不容易被系统杀死),从而保证任务的执行。
对于后台线程,若进程中没有活动的四大组件,则该线程的优先级非常低,容易被系统杀死,无法保证任务的执行
常规用法
清单注册服务
<service android:name=".SerialService"><intent-filter><action android:name="android.service.newland.serial" /></intent-filter></service>
服务内容
package com.lxh.serialport;
import android.app.IntentService;
import android.content.Intent;
import android.content.Context;
public class SerialService extends IntentService {private static final String TAG = "SerialService lxh";private static String ACTION_Serial = "android.service.serial";public SerialService() {super("SerialService");}public static void startSS(Context context) {Intent intent = new Intent(context, SerialService.class);intent.setAction(ACTION_Serial);context.startService(intent);}@Overrideprotected void onHandleIntent(Intent intent) {if (intent != null) {final String action = intent.getAction();if (action.equals(ACTION_Serial)) {
// mSerialInter = new modeSerialInter();
// SerialManage.getInstance().init(mSerialInter);
// SerialManage.getInstance().open();}}}
}
开启服务
SerialService.startSS(this);
感谢互联网
适合阅读文章分享
Android IntentService详解
与君共勉!待续
欢迎指错,一起学习
相关文章:
Android Studio的代码笔记--IntentService学习
IntentService学习 IntentService常规用法清单注册服务服务内容开启服务 IntentService 一个 HandlerThread工作线程,通过Handler实现把消息加入消息队列中等待执行,通过传递的intent在onHandleIntent中处理任务。(多次调用会按顺序执行事件…...
C语言 - 字符函数和字符串函数
系列文章目录 文章目录 系列文章目录前言1. 字符分类函数islower 是能够判断参数部分的 c 是否是⼩写字⺟的。 通过返回值来说明是否是⼩写字⺟,如果是⼩写字⺟就返回⾮0的整数,如果不是⼩写字⺟,则返回0。 2. 字符转换函数3. strlen的使⽤和…...
Redis rdb源码解析
前置学习:Redis server启动源码-CSDN博客 1、触发时机 1、执行save命令--->rdbSave函数 2、执行bgsave命令--->rdbSaveBackground函数或者(serverCron->prepareForShutdown) 3,主从复制-->startBgsaveForReplication…...
深入理解CyclicBarrier
文章目录 1. 概念2. CylicBarier使用简单案例3. 源码 1. 概念 CyclicBarrier 字面意思回环栅栏(循环屏障),通过它可以实现让一组线程等待至某个状态(屏障点)之后再全部同时执行。叫做回环是因为当所有等待线程都被释放…...
微信小程序 - 格式化操作 moment.js格式化常用使用方法总结大全
格式化操作使用 1. 首先,下载一个第三方库 moment npm i moment --save 注:在微信小程序中无法直接npm 下载 导入 的(安装一个就需要构建一次) 解决:菜单栏 --> 工具 --> 构建 npm 点击即可(会…...
学习pytorch18 pytorch完整的模型训练流程
pytorch完整的模型训练流程 1. 流程1. 整理训练数据 使用CIFAR10数据集2. 搭建网络结构3. 构建损失函数4. 使用优化器5. 训练模型6. 测试数据 计算模型预测正确率7. 保存模型 2. 代码1. model.py2. train.py 3. 结果tensorboard结果以下图片 颜色较浅的线是真实计算的值&#x…...
电子学会C/C++编程等级考试2021年09月(五级)真题解析
C/C++等级考试(1~8级)全部真题・点这里 第1题:抓牛 农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式: 1、从X移动到X-1或X+1,每次移动花费一分钟 2、从X移动到2*X,每…...
Halcon联合winform显示以及处理
在窗口中添加窗体和按钮,并在解决方案资源管理器中调加了导入Halcon导出的.cs文件,运行出现下图的问题: 问题1:CS0017 程序定义了多个入口点。使用/main(指定包含入口点的类型)进行编译。 解决方案1.: 右…...
【设计模式-4.3】行为型——责任链模式
说明:本文介绍设计模式中行为型设计模式中的,责任链模式; 审批流程 责任链模式属于行为型设计模式,关注于对象的行为。责任链模式非常典型的案例,就是审批流程的实现。如一个报销单的审批流程,根据报销单…...
单片机语言--C51语言的数据类型以及存储类型以及一些基本运算
C51语言 本文主要涉及C51语言的一些基本知识,比如C51语言的数据类型以及存储类型以及一些基本运算。 文章目录 C51语言一、 C51与标准C的比较二、 C51语言中的数据类型与存储类型2.1、C51的扩展数据类型2.2、数据存储类型 三、 C51的基本运算3.1 算术运算符3.2 逻辑…...
《每天一个Linux命令》 -- (5)通过sshkey密钥登录服务器
欢迎阅读《每天一个Linux命令》系列!在本篇文章中,将介绍通过密钥生成,使用公钥连接管理服务器。 概念 SSH 密钥是用于安全地访问远程服务器的一种方法。SSH 密钥由一对密钥组成:公钥和私钥。公钥存储在远程服务器上,…...
kubernetes的服务发现(二)
如前面的文章我们说了,kubernetes的服务发现是服务端发现模式。它有一个服务注册中心,使用DNS作为服务的注册表。每个集群都会运行一个DNS服务,默认是CoreDNS服务。每个服务都会在这个DNS中注册。注册的大致过程: 1、向kube-apise…...
【矩阵论】Chapter 4—特征值和特征向量知识点总结复习
文章目录 1 特征值和特征向量2 对角化3 Schur定理和正规矩阵4 Python求解 1 特征值和特征向量 定义 设 σ \sigma σ为数域 F F F上线性空间 V V V上的一个线性变换,一个非零向量 v ∈ V v\in V v∈V,如果存在一个 λ ∈ F \lambda \in F λ∈F使得 σ (…...
Linux 进程地址空间
知识回顾 在 C 语言的学习过程中,我们知道内存是可以被划分为栈区,堆区,全局数据区,字符常量区,代码区的。他的空间排布可能是下面的样子: 其中,全局数据区,可以划分为已初始化全局…...
websocket vue操作
let websocket: WebSocket; /** websocket测试 */ function connectWebsocket() {if (typeof WebSocket "undefined") {console.log("您的浏览器不支持WebSocket");return;}// let ip window.location.hostname ":8080";let ip "10.192…...
腾讯云CentOS8 jenkins war安装jenkins步骤文档
腾讯云CentOS8 jenkins war安装jenkins步骤文档 一、安装jdk 1.1 上传jdk-11.0.20_linux-x64_bin.tar.gz 1.2 解压jdk安装包文件 tar -zxvf jdk*.tar.gz 1.3 在/usr/local 目录下创建java目录 cd /usr/local mkdir java 1.4 切到java目录,把jdk解压文件改名为jd…...
Linux: glibc: net/if.h vs linux/if.h
最近看到一段代码改动,用net/if.h替换了linux/if.h。仔细看了看这两个的区别: https://stackoverflow.com/questions/20082433/what-is-the-difference-between-linux-if-h-and-net-if-h 从网上搜了一下看到如下的一个编译错误,如果同时使用这两个if.h文件,需要将net/if.h…...
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
文章目录 一、 篇头二、 操作步骤2.1 编译AOSP AS工程文件2.2 将AOSP导入Android Studio2.3 切到Project试图2.4 等待index结束2.5 下载缺失的JDK 1.82.6 导入完成 三、 导入AS的好处3.1 本文案例演示源码编译错误AS对比同文件其余地方的调用AS错误提示依赖AS做错误修正 一、 篇…...
python random详解
文章目录 random简单示例1. 生成随机浮点数:2. 生成指定范围内的随机整数:3. 从序列中随机选择元素:4. 打乱序列顺序: 常用的方法及其解释和例子:1. random():该方法返回一个0到1之间的随机浮点数。例如&am…...
java-两个列表进行比较,判断那些是需要新增的、删除的、和更新的
文章目录 前言两个列表进行比较,判断那些是需要新增的、删除的、和更新的 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。 而且听说点赞的人每天的运气都不会太差,实…...
从‘距离’理解生成对抗:Wasserstein距离如何拯救你的GAN项目?通俗图解+代码验证
从Wasserstein距离到实战:如何用数学直觉拯救你的GAN训练? 想象你正在训练一个生成对抗网络(GAN),却发现生成器要么完全崩溃,要么反复输出几乎相同的图像——这就是典型的模式坍塌(Mode Collaps…...
Dify向量检索精度跃升47%的秘密(重排序Pipeline低延迟部署避坑手册)
第一章:Dify重排序算法精度跃升47%的核心动因解析Dify v0.12.0 引入的重排序(Reranking)模块并非简单叠加模型,而是通过三重协同优化机制实现精度质变。核心突破在于将传统单阶段打分范式升级为「语义对齐—上下文感知—动态归一化…...
中国空间智能,梦想照进现实
2026年初,AI教母李飞飞的AI公司World Labs再次获得一笔10亿美元的投资,投资名单除了传统投资机构外,还不乏英伟达、Autodesk等行业巨头,这清晰地传递出市场信号:继AI大语言模型之后,空间智能已成为AI的下一…...
第 11 章 追踪与性能分析(OpenOCD)
第 11 章 追踪与性能分析 导读:现代 ARM 处理器内置了丰富的 CoreSight 追踪基础设施,包括 ETM 指令追踪、ITM/DWT 数据追踪、SWO/TPIU 追踪输出以及 SEGGER RTT 高速日志。本章将系统介绍如何在 OpenOCD 中配置和使用这些追踪功能,帮助开发者在不侵入目标程序的前提下,完成…...
如何用RSPrompter提升遥感图像分割效果?基于SAM的实战技巧分享
如何用RSPrompter提升遥感图像分割效果?基于SAM的实战技巧分享 遥感图像分割一直是计算机视觉领域的难点之一。传统方法往往需要大量标注数据,而标注成本高昂,尤其是对于高分辨率遥感影像。2023年Meta发布的Segment Anything Model(SAM)展现了…...
手把手教你读懂SAP SD定价中的红绿灯图标(KINAK字段全解析)
SAP SD定价红绿灯图标全解析:从业务逻辑到实战诊断 在SAP SD模块的日常操作中,定价条件的有效性判断直接影响着销售订单的准确性和业务决策效率。那些看似简单的红绿灯图标背后,隐藏着复杂的业务规则和系统逻辑。本文将带您深入理解KINAK字段…...
Linux 配置文件 bashrc
本文详细介绍了Linux系统中配置文件bashrc的作用、使用方法和配置技巧。bashrc文件是bash shell在用户登录时自动执行的脚本,用于定义用户的环境变量和别名等个性化设置。文章首先解释了bashrc文件的重要性,并介绍了如何编辑和修改该文件。接着ÿ…...
HackTricks数字取证方法论:内存转储分析与恶意软件检测完全指南
HackTricks数字取证方法论:内存转储分析与恶意软件检测完全指南 【免费下载链接】hacktricks Welcome to the page where you will find each trick/technique/whatever I have learnt in CTFs, real life apps, and reading researches and news. 项目地址: http…...
OpenClaw技能开发入门:基于百川2-13B-4bits制作天气查询插件
OpenClaw技能开发入门:基于百川2-13B-4bits制作天气查询插件 1. 为什么选择OpenClaw开发个人技能? 去年冬天,我每天早上都要手动查询天气决定穿衣厚度,直到发现OpenClaw可以通过自然语言指令自动完成这类重复任务。作为一个开源…...
XGBoost+SHAP实战:如何让机器学习模型‘看懂’地图?
XGBoostSHAP实战:如何让机器学习模型‘看懂’地图? 当机器学习遇上地理空间数据,我们常常面临一个核心矛盾:模型预测精度与人类可解释性之间的博弈。传统GIS分析方法如空间滞后模型(SLM)或地理加权回归&…...
