返回顶部
首页 > 资讯 > 精选 >Andriod Service与Thread的区别介绍
  • 903
分享到

Andriod Service与Thread的区别介绍

androidservicethread 2023-05-31 05:05:25 903人浏览 薄情痞子
摘要

首先,我们需要明确Service是运行在主线程的,不能有耗时操作,这样,在Service中处理耗时操作的时候,我们依然需要使用线程来处理。既然在Service里也要创建一个子线程,那为什么不直接在Activity里创建呢?这是因为A

首先,我们需要明确Service是运行在主线程的,不能有耗时操作,这样,在Service中处理耗时操作的时候,我们依然需要使用线程来处理。

既然在Service里也要创建一个子线程,那为什么不直接在Activity里创建呢?

这是因为Activity很难对Thread进行控制,当Activity被销毁之后,就没有任何其它的办法可以再重新获取到之前创建的子线程的实例。而且在一个Activity中创建的子线程,另一个Activity无法对其进行操作。但是Service就不同了,所有的Activity都可以与Service进行关联,然后可以很方便地操作其中的方法,即使Activity被销毁了,之后只要重新与Service建立关联,就又能够获取到原有的Service中Binder的实例。因此,使用Service来处理后台任务,Activity就可以放心地finish,完全不需要担心无法对后台任务进行控制的情况。

标准Service的写法:

@Overridepublic int onStartCommand(Intent intent, int flags, int startId) {new Thread(new Runnable() {@Overridepublic void run() {// 开始执行后台任务}}).start();return super.onStartCommand(intent, flags, startId);}class MyBinder extends Binder {public void startDownload() {new Thread(new Runnable() {@Overridepublic void run() {// 执行具体的下载任务}}).start();}}

--结束END--

本文标题: Andriod Service与Thread的区别介绍

本文链接: https://lsjlt.com/news/223745.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Andriod Service与Thread的区别介绍
    首先,我们需要明确Service是运行在主线程的,不能有耗时操作,这样,在Service中处理耗时操作的时候,我们依然需要使用线程来处理。既然在Service里也要创建一个子线程,那为什么不直接在Activity里创建呢?这是因为A...
    99+
    2023-05-31
    android service thread
  • npm与cnpm的区别介绍
    NPM(Node Package Manager,节点包管理器)是NodeJS的包管理器,用于节点插件的管理(包括安装,卸载和管理依赖等)。NPM是随同新版的NodeJS一起安装的包管理工具,所以我们需要安装NodeJS。NPM的常见使用场...
    99+
    2023-06-03
  • Android Thread 介绍与实例
    Android中很重要的一个机制就是线程+消息,当然线程并不是android独有的,下面,简单的说说使用线程的时候应该注意的地方 我们采用最简单的方法来建立一个android的...
    99+
    2022-06-06
    Android
  • idea中断点类型之All和Thread的区别介绍
    All模式  所有的线程都要在当前位置被阻塞,谁先来就先阻塞谁,发生阻塞时其他的线程当前时刻执行到哪里就在哪里进行原地等待。如果此时按下一步F6,那所有的线程都通过阻塞代码...
    99+
    2024-04-02
  • 深入剖析Android中Service和Thread区别
    Service既不是进程也不是线程,它们之间的关系如下: 可能有的朋友会问了,既然是长耗时的操作,那么Thread也可以完成啊。没错,在程序里面很多耗时工作我们也可以通过Th...
    99+
    2022-06-06
    service Android
  • 云主机与vps的区别介绍
    本篇内容主要讲解“云主机与vps的区别介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“云主机与vps的区别介绍”吧! 云主机和vps有哪些区别呢下面小编从以下六个方面为大家介绍。VP...
    99+
    2023-06-07
  • JavaScriptonclick与addEventListener使用的区别介绍
    目录摘要区别同时绑定多个事件决定事件触发顺序removeEventListener的使用方法摘要 当我们想要给某个DOM元素绑定事件的时候,最常用的方法是通过on + 事件名字的方式...
    99+
    2024-04-02
  • Node.js 中的 module.exports 与 exports区别介绍
    目录介绍示例从源码中理解通过示例理解示例一示例二示例三示例四小结介绍 module:每个模块中都有 module 对象,存放了当前模块相关的信息;module.e...
    99+
    2024-04-02
  • window.navigate 与 window.location.href 的使用区别介绍
    首先说明的是 window.navigate 与 window.location.href 都是实现页面链接跳转的,下面将介绍它们的区别。 window.navigate("http...
    99+
    2022-11-15
    navigate location.href
  • C#中Backgroundworker与Thread的区别
    目录1.Backgroundworker2.Thread3.总结最近项目要用到,窗体Form程序要在后台开启几个子线程,负责和其他端进行通信,异步读写,并且来更改UI。在网上查了有B...
    99+
    2024-04-02
  • 解析java.library.path和LD_LIBRARY_PATH的介绍与区别
    背景 近期要将算法部署到一个机群的虚拟主机(Debian 9.1 gcc 6.3.0)上,采用的是Java + JNI + shared library的方式来完成底层算法能力的部署...
    99+
    2024-04-02
  • VUE中的v-if与v-show区别介绍
    1.共同点 都是动态显示DOM元素 2.区别 (1)手段:v-if是动态的向DOM树内添加或者删除DOM元素;v-show是通过设置DOM元素的display样式属性控制显隐;(2)...
    99+
    2024-04-02
  • B/S与C/S架构的区别介绍
    1.系统架构包括哪些形式? C/S架构 B/S架构 2.什么是C/S架构? 说白了就是客户端/服务端,我们需要安装特定的客户端软卷,例如:QQ。 C/S架构的...
    99+
    2024-04-02
  • 浅析Bean Searcher 与 MyBatis Plus 区别介绍
    目录区别一(基本)区别二(高级查询)1)使用 MyBatis Plus 查询:2)使用 Bean Searcher 查询:区别三(逻辑分组)区别四(多表联查)区别五(使用场景)疑问1...
    99+
    2024-04-02
  • SQLite与MySQL区别及优缺点介绍
    简单来说,SQLITE功能简约,小型化,追求最大磁盘效率;MYSQL功能全面,综合化,追求最大并发效率。如果只是单机上用的,数据量不是很大,需要方便移植或者需要频繁读/写磁盘文件的话...
    99+
    2024-04-02
  • MySQL中in与exists的使用及区别介绍
    先放一段代码 for(int i=0;i<1000;i++){ for(int j=0;j<5;j++){ System.out.println("hello"); } } for...
    99+
    2024-04-02
  • document.documentElement和document.body区别介绍
    区别: body是DOM对象里的body子节点,即 <body> 标签; documentElement 是整个节点树的根节点root,即<html> 标签;...
    99+
    2022-11-15
    documentElement document.body
  • ASP.NET Core中Razor页面与MVC区别介绍
    作为.NET Core 2.0发行版的一部分,还有一些ASP.NET的更新。其中之一是添加了一个新的Web框架来创建“页面”,而不需要复杂的ASP.NET M...
    99+
    2024-04-02
  • python 集合set中 add与update区别介绍
    集合set是一个无序不重复元素的集 set(['hello','hello','hi']) # {'hello', 'hi'} set('hello hello hi') # {...
    99+
    2024-04-02
  • golang协程与线程区别简要介绍
    目录一、进程与线程二、并发与并行三、go协程与线程1.调度方式2.调度策略3.上下文切换速度4.栈的大小四、GMP模型一、进程与线程 进程是操作系统资源分配的基本单位,是程序运行的实...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作