综合( 右侧选择分类 )
SuperBig

Android Service详解(五)---绑定服务BoundService详解之AIDL的使用

一、什么是AIDLAIDL(Android Interface Definition Language)安卓接口定义语言二、为什么使用AIDL呢?如果将Service变成远程Service的话,使用扩展的Binder进行通信会报错:这是由于在Bind Service按钮的点击事件里面我们会让MainActivity和MyService建立关联,但是目前MyService已经是一个远程Service
2402 人浏览
SuperBig

Android Service详解(四)---绑定服务BoundService详解之扩展Binder类

这是第四篇文章主要讲的是BoundService中使用扩展Binder类实现一、基础知识1.什么是绑定服务绑定服务是客户端-服务器接口中的服务器。绑定服务可让组件(例如 Activity)绑定到服务、发送请求、接收响应,甚至执行进程间通信 (IPC)。 绑定服务通常只在为其他应用组件服务时处于活动状态,不会无限期在后台运行。2.实现原理应用程序组件(客户端)通过调用bindService()方法能
2557 人浏览
SuperBig

Android Service详解(三)---IntentService

这是第三篇文章主要讲的是IntentService的使用一、Service的耗时操作如何解决呢?不管是何种Service,它默认都是在应用程序的主线程(亦即UI线程)中运行的。所以,如果你的Service将要运行非常耗时或者可能被阻塞的操作时,你的应用程序将会被挂起,甚至会出现ANR错误。为了避免这一问题,你应该在Service中重新启动一个新的线程来进行这些操作。现有两种方法大家参考:① 直接在
2583 人浏览
SuperBig

Android Service详解(二)---StartService

一丶概述启动服务由另一个组件通过调用 startService() 启动,这会导致调用服务的 onStartCommand() 方法。服务启动之后,其生命周期即独立于启动它的组件,并且可以在后台无限期地运行,即使启动服务的组件已被销毁也不受影响。 因此,服务应通过调用 stopSelf() 结束工作来自行停止运行,或者由另一个组件通过调用 stopService() 来停止它。应用组件(如 Act
2711 人浏览
SuperBig

Android Service详解(一)---概述

一、什么是ServiceService 是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。 此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。 例如,服务可以处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序交互,而所有这一切均可在后台进行。二、那么服务可以做什么呢?Serv
3401 人浏览
android

Android studio 2.2 2.3 2.4 如何使用kotlin插件

Google I/O 大会后,Android Studio 就发布了3.0 金丝雀版本,支持 Kotlin 语言,增加了 Gradle 编译速度,支持即时应用开发,在 Android O 模拟器中增加了 Google Play Store,自适应图标等 20 多项新功能。今天我们不讨论Android Studio 3.0 使用Kotlin,我会在后面的博客中介绍,今天是讨论和学习
4380 人浏览
android

在Android studio3.0 用kotlin语言开发Android app demo

Google I/O 大会后,Android Studio 就发布了3.0 金丝雀版本,支持 Kotlin 语言,增加了 Gradle 编译速度,支持即时应用开发,在 Android O 模拟器中增加了 Google Play Store,自适应图标等 20 多项新功能。今天我们一起讨论和学习android studio 3.0本如何使用Kotlin语言开发Android应用。废话不多说,我们直上
3847 人浏览
hgphp

git查看commit提交记录详情

如何使用git查看commit修改了哪些内容,以便后续的代码工作。与之相关的命令就是:gitlog查看所有的commit提交记录gitshow查看提交的详情具体步骤:一、首先,需要通过git log打印所有commit记录,例如二、之后的git show都是基于commit hashID输出的。1.查看最新的commitgitshow2.查看指定commit hashID的所有修改:gitshow
3946 人浏览
hgphp

Git 查看某次commit的内容

我们再用git的时候,经常要 查看某次commit的修改内容,分下面一种情况知道commitid的情况下: 1.获取commitid gitlog 2.查看commit内容 gitshowcommit_id 查看最近n次提交的修改 gitlog-p-n 指定n为1则可以查看最近一次修改的内容
2179 人浏览
hangge

macOS - 使用rz、sz命令进行文件上传和下载(iTerm2安装使用)

MacOS自带的命令终端不支持使用rz和sz命令进行文件上传和下载。我们可以安装另一种终端iTerm2,然后对iTerm2进行扩展安装lrzsz,这样Mac就可以使用rz和sz命令进行文件传输了。具体操作步骤如下。1,安装 iTerm2首先到其官网下载iTem2安装包,下载完成后直接双击安装。下载地址:https://www.iterm2.com/#/section/downloads2,安装 l
1712 人浏览
hangge

Docker - 在容器中运行Apache服务器(httpd)

Docker生态系统最吸引人的地方在于我们可以任意下载并使用数以万计的已有容器。下面演示如何使用Apache容器作为Web服务器。(1)首先确保我们的电脑已经安装了docker环境,没有的话可以参考我之前写的文章:CentOS下 Docker、Docker Compose 的安装教程(附详细步骤)(2)docker环境准备好之后,执行如下命令下载httpd的docker镜像:dockerpull
2742 人浏览
hangge

Docker - 在容器中搭建运行FTP服务器(vsftpd)

使用Docker搭建FTP服务,不仅十分简单,而且可以对宿主机有一定的隔离。下面以CentOS系统为例,演示如何通过容器运行FTP服务。1,拉取镜像首先执行如下命令将镜像下载到本地:dockerpullfauria/vsftpd2,启动容器执行如下命令实例化ftp服务:参数说明:/home/ftp:/home/vsftpd:映射docker容器ftp文件根目录(冒号前面是宿主机的目录)-p:映
5823 人浏览
hangge

Linux - 新建用户教程(新增一个具有root权限的新用户)

(1)首先执行如下命令新建个hangge用户。useraddhangge(2)接着执行下面命令对其设置密码(这里设置为123)输入密码时可能会提示:“无效的密码: 密码少于 8 个字符”“无效的密码: 密码未通过字典检查 - 过于简单化/系统化”。我们可以不用管它,直接输入密码后回车。passwdhangge(3)将查看/etc/sudoers文件权限,如果是只读权限,修将其改为可写权限。ls-l
1784 人浏览
hangge

CentOS - 修改主机名教程(将 localhost.localdomain 改成其它名字)

最近在虚拟机中装了个CentOS 7系统,使用hostname命令可以看到其默认的主机名为localhost.localdomain。如果想要改成其它名字,可以按照如下步骤进行操作。(1)首先执行如下命令将主机名字改成k8s-masterhostnamectlset-hostnamek8s-master(2)接着还需要编辑/etc/hosts文件,执行如下命令开始编辑vi/etc/hosts3
2491 人浏览
bbsmax

HDFS 读写流程-英

HDFS 文件读取流程The client opens the file it wishes to read by calling open() on the FileSystem object, which for HDFS is an instance of DistributedFileSystem (step 1 in Figure 3-2).DistributedFileSystem c
1460 人浏览
bbsmax

从一道看似简单的面试题重新理解JS执行机制与定时器

壹 ❀ 引最近在看前端进阶的系列专栏,碰巧看到了几篇关于JS事件执行机制的面试文章,因为我在之前一篇JS执行机制详解,定时器时间间隔的真正含义博文中也有记录JS执行机制,所以正好用于作为测试自己的理解情况,那么本文顺着题目来重新理一理思路,说说我对于题目的理解,扩充知识点。本文站在你对于JS执行机制与定时器已经有所了解的前提下展开,若非如此,建议先了解相关概念会更好,那么本文开始。贰 ❀ 一道变化
1457 人浏览
bbsmax

深度递归必须知道的尾调用(Lambda)

引导语本文从一个递归栈溢出说起,像大家介绍一下如何使用尾调用解决这个问题,以及尾调用的原理,最后还提供一个解决方案的工具类,大家可以在工作中放心用起来。递归-发现栈溢出现在我们有个需求,需要计算任意值阶乘的结果,阶乘我们用 n!表示,它的计算公式是:n! = 123……(n-1)n,比如说 3 的阶乘就是 123。对于这个问题,我们首先想到的应该就是递归,我们立马写了一个简单的递归代码://阶乘计
1472 人浏览
hangge

VMware - 虚拟机下CentOS配置固定IP的方法(附:操作步骤)

1,问题描述 最近在虚拟机上安装了个CentOS 7系统,其中网络连接采用NAT模式。CentOS系统可以正常访问外网,但其IP默认是动态获取的,也就是说每次重启IP都可能变化。因为某些原因,现需要其能保持固定IP。2,解决办法(1)首先进入CentOS 7命令行界面,执行ip addr查看当前网络信息,可以看到:当前虚拟机的网卡名称为:ens33当前虚拟机分配的ip为:192.168.60.1
1569 人浏览
hangge

TIOBE - 2019年6月编程语言排行

六月头条:Python 排名飙升 Python 的 TIOBE 指数持续飙升,并在本月创下了历史新高,达到 8.530%,远超 C++ 的 7.384%。如果 Python 可以保持这种增长速度,有机会在 3 到 4 年内在 TIOBE 语言排行榜上取代 C 和 Java 的位置,从而成为世界上最流行的编程语言。 Python 排名上升得如此快原因在于软件工程正在蓬勃发展,而 Python 恰好吸
1390 人浏览
hangge

Docker - 加速镜像下载(使用DaoCloud镜像服务)

由于Docker Hub的服务器在国外,我们平时下载镜像可能会比较慢。好在DaoCloud为我们提供了免费的镜像服务,下面介绍如何配置使用这个镜像服务。(1)首先访问DaoCloud网站,注册一个用户。https://www.daocloud.io/(2)登录后,点击顶部菜单的“加速器”图标。(3)在弹出页面中找到适合自己系统的配置命令。(4)比如我是CentOS系统,则在命令终端中执行如下命令
1436 人浏览