201709015工作日记--IntentService使用】的更多相关文章

一.IntentService与Service的区别 Service 是 Android 四大组件之一,正常来说,我们直接使用 Service 就可以了. 但是 Service 存在几个问题: 默认不会运行在单独的进程中,而是和所在应用共用同一个进程. Service 也是在主线程中运行,所以一些耗时操作,依然需要单独开启线程去执行. 第一个问题其实并不是什么大的问题,但是正常来说,我们使用 Service 就是想在后台执行一些其他的操作,例如:下载等,而这些,又需要额外开启线程来完成任务,这样…
1.Android上下文理解 Android上下文对象,在Context中封装一个所谓的“语境”,Activity.Service.Application都继承自Context,所以在这三者创建时都会创建应用上下文Content 所有的组件共同拥有Application Context,可以通过getApplicationContext()获取 Activity中获取Context对象,直接this,匿名内部类指定XXXActivity.this Context的作用是用来访问全局信息的,比如每…
1.首先来看一个常规的handler用法: 在主线程中建立一个handler: private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 0: mTestTV.setText("This is handleMessage");//更新UI break; }…
service生命周期 Service主要包含本地类和远程类. Service不是Thread,Service 是android的一种机制,当它运行的时候如果是Local Service,那么对应的 Service 是运行在主进程的 main 线程上的.如:onCreate,onStart 这些函数在被系统调用的时候都是在主进程的 main 线程上运行的.如果是Remote Service,那么对应的 Service 则是运行在独立进程的 main 线程上. 通信方式有很多但是需要根据需求去选择…
1.ART 与 Dalvik 的优缺点对比 什么是Dalvik:Dalvik是Google公司自己设计用于Android平台的Java虚拟机.dex格式是专为Dalvik应用设计的一种压缩格.Dalvik允许同时运行多个虚拟机的实例,并且每一个应用作为独立的Linux进程执行.  目前在Android4.4及其以下的版本中,应该全都是使用的Dalvik这种模式. 什么是ART:在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行,这一机制并不高效…
1.Cache接口和DiskBasedCache实现类 首先,DiskBasedCache类是Cache接口的实现类,因此我们需要先把Cache接口中的方法搞明白. 首先分析下Cache接口中的东西,首先是接口的内部类 class entry{},用途是返回缓存的数据,下面是内部类的具体实现: class Entry { /** * 从缓存中返回的数据 * The data returned from cache. * */ public byte[] data; /** * 缓存一致性 * E…
Volley没有jar包,需要从官网上下载源码自己编译出来,或者做成相关moudle引入项目中.我们先从最简单的使用方法入手进行分析: //创建一个网络请求队列 RequestQueue requestQueue = Volley.newRequestQueue(this); String url = "http://news-at.zhihu.com/api/4/news/latest"; //创建一个网络请求 StringRequest request = new StringRe…
1. 在StringRequest类中的75行--new String();使用方法 /** * 工作线程将会调用这个方法 * @param response Response from the network * @return */ @Override protected Response<String> parseNetworkResponse(NetworkResponse response) { String parsed; try { parsed = new String(res…
链接:http://www.jb51.net/LINUXjishu/19905.html 查看Linux里面的batch: cat /etc/crontab (1)0 19 * * 6 root /data01/home/centillion/apps/himawari_delete_batch/batch-delete-candle.sh 正常是星期六的19点钟执行一次,然后看时区,如果是UTC,由于服务器是在日本那边,所以UTC+9 因此是周日的凌晨四点执行  (背景:武汉工作)*/30 *…
新项目组使用完善的angularMVVM设计思路架构,很庆幸能够来到这个项目组,在这里的每一天都能够学习到新的知识,为了防止以后忘记,记录一下个人的理解 首先接触最多的是directive,directive目前用到了以下几个属性, restrict,scope,link,templateUrl 首先是restrict:这个无需多说,用来定义自定义指令的使用形式,包括A属性,E标签,C是class,M是备注,最常用的就是EA,尤其是E可以在标签中使用自定义属性传参给父controller,或者定…
1. 适配器设计模式 实例描述:我们国家的电器使用普通的扁平两项或三项插头,而去外国的话,使用的标准就不一样了,比如德国,使用的是两项圆头的插头,那么我们使用的手机充电器插头无法插到德国的插排中去,那就意味着我们无法给手机充电.怎样解决这个问题呢?只要使用一个电源转化器就行了. 2.listview性能优化…
学习了LayoutInflater的原理分析.视图的绘制流程.视图的状态及重绘等知识,按类型来划分的话,自定义View的实现方式大概可以分为三种,自绘控件.组合控件.以及继承控件.那么下面我们就来依次学习一下,每种方式分别是如何自定义View的. (一)自绘控件 自绘控件的意思就是,这个View上所展现的内容全部都是我们自己绘制出来的.绘制的代码是写在onDraw()方法中的.参考相关博客 http://blog.csdn.net/guolin_blog/article/details/1735…
1.handler+Thread 和 runOnUIThread 和 handler.post 方法 区别: 从实现原理上,两者别无二致,runOnUiThread也是借助Handler实现的.  对于使用场景,runOnUiThread用法简单,并且共享了同一个Handler,用起来高效.方便.另外,如果在主线程中直接调用,runOnUiThread也可以判断并立即执行,不再推入消息队列.  而Handler由于更加基础,所以可定制性要比runOnUiThread强,可以实现标记.延时等功能,…
学习完了CacheDispatcher这个类,下面我们看下NetworkDispatcher这个类的具体细节,先上代码: /** * 提供一个线程执行网络调度的请求分发 * Provides a thread for performing network dispatch from a queue of requests. * * 请求被添加到了指定的队列中 * 返回的数据通过ResponseDelivery接口返回 * Requests added to the specified queue…
接着volley源码(三)继续,本来是准备写在(三)后面的,但是博客园太垃圾了,写了半天居然没保存上,要不是公司这个博客还没被限制登陆,鬼才用这个...真是垃圾 继续解读RequestQueue的源码,Volley 的入口是创建一个 RequestQueue 队列,然后开启一个缓存线程和一组网络线程,等待用户 add 新的 request.那我们现在看一下 add 方法里面,RequestQueue 做了哪些事情. /** * 添加一个请求到这个消息队列中去 * Adds a Request t…
CAS主要参考博文:classtag  http://www.jianshu.com/p/473e14d5ab2d CAS(Compare and swap)比较和替换是设计并发算法时用到的一种技术 .Compare and Swap, 翻译成比较并交换. 简单来说,比较和替换是使用一个期望值和一个变量的当前值进行比较,如果当前变量的值与我们期望的值相等,就使用一个新值替换当前变量的值. java.util.concurrent包完全建立在CAS之上的,没有CAS就不会有此包.可见CAS的重要性…
1.reentrantLock java.util.concurrent.lock 中的Lock 框架是锁定的一个抽象,它允许把锁定的实现作为 Java 类,而不是作为语言的特性来实现.这就为Lock 的多种实现留下了空间,各种实现可能有不同的调度算法.性能特性或者锁定语义.         ReentrantLock 类实现了Lock ,它拥有与synchronized 相同的并发性和内存语义,但是添加了类似锁投票.定时锁等候和可中断锁等候的一些特性.此外,它还提供了在激烈争用情况下更佳的性能…
1. Syncronized与ReentrantLock Synchronized比ReentrantLock进java标准早,因此一开始大家都是用它.相当于Java提供了一种封装的互斥锁机制,对于用户来说,声明成synchronized就可以拿到锁的能力,而不用管具体是怎么加锁解锁的 使用简便也是双刃剑,synchronized的粒度较粗,可控性较差.比如无法中断一个正在等候获得锁的线程,也无法通过投票得到锁等等.很多场景不是一个互斥锁就能搞定的. 所以Java搞了个java.util.con…
1. sleep()和wait()的区分 (1)这两个方法来自不同的类分别是,sleep来自Thread类,wait来自Object类. sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用了b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep (2)最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法. sleep不出让系统资源,一直占用着锁:wait是进入阻塞状态,出让系统资源,其他线程可以占用C…
参考相关博客: http://www.jianshu.com/p/55e3f1b6701f  刘望舒 http://www.jianshu.com/p/4fc6164e4709 王三的猫阿德 http://www.jianshu.com/p/7c3c549a0ec4 王三的猫阿德…
参考相关博客:http://blog.csdn.net/liuhe688/article/details/6532519 在Android中实现异步任务机制有两种方式,Handler和AsyncTask. Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更新,这种方式对于整个过程的控制比较精细,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制.关于Handler的相关知识,前面也有所介绍,不清楚的朋…
1.关于viewHolder设置成static的讨论 一般情况下是尽量不要使用static关键字,因为static一旦有引用变量指向了变量,使用完毕后而没有设置null,就会造成内存泄露,而且很难排查.但并非绝对不允许使用static,你需要非常小心的维护这个static的引用. 这里要讨论的是在listView优化时,使用的viewHolder,这个类Google的示例程序将该类定义为静态内部类,是因为它没有依赖任何外部类,它本身是独立的,不会存在内存泄漏.更为详细的解释如下: (1)一般来说…
1. android的消息机制——Handler机制 参考:http://www.jianshu.com/p/9e4d1fab0f36. Android异步消息处理机制完全解析,带你从源码的角度理解: http://blog.csdn.net/guolin_blog/article/details/9991569…
1. 在一台主机上面使用多个GitHub账号 有时候,我们需要将个人账号和公司账号区分,这时候我们就会需要在一台电脑上使用2个不同的git账号. 2. 上传文件 http://blog.csdn.net/qq_23547831/article/details/50010419 使用AS上传项目 http://www.jianshu.com/p/aa341d691658…
1. RequestQueue类 我们使用 Volley 的时候创建一个 request 然后把它丢到 RequestQueue 中就可以了.那么来看 RequestQueue 的构造方法,含有四个参数的构造器是最终会调用的构造器. public RequestQueue(Cache cache, Network network, int threadPoolSize, ResponseDelivery delivery) { mCache = cache; mNetwork = network…
随手搜了一下,Android studio居然能够自动帮追我们生成UML的类图,简直太棒了http://www.gcssloop.com/course/UsePlantUMLInAS(Win),具体做法博客地址. 试了一下并不是根据Java文件自动生成的,而是需要自己写dot语法的相关代码,效果图如下,遂放弃 1.UML绘制类图 使用在线网站 https://www.processon.com/ 进行类图绘制.掌握基础绘制,如接口实现,继承关系等. 类之间的几种关系: 1.泛化--子类和父类的继…
/// <summary> /// 操作系统的登录用户名 /// </summary> /// <returns>系统的登录用户名</returns> public static string GetUserName() { try { return Environment.UserName; // var strUserName = string.Empty; // var mc = new ManagementClass("Win32_Comp…
一个工作任务涉及到c#与c++系统间的udp通信,处理了蛮长时间没有完成任务,但是期间接触到不少小知识点.本人是初接触c#,c++语言没有接触过.可能写的东西都很小儿科,暂且记录下来当工作日记把. 先解决本文的主题:c#中结构体与byte[]间相互转换,以便帮助查阅到的人解决一下问题.在工作任务过程中,学习到了c#中结构体与byte[]间相互转换.做的代码实验如下: using System; using System.Collections.Generic; using System.Linq…
Service组件 Service 和Activity 一样同为Android 的四大组件之一,并且他们都有各自的生命周期,要想掌握Service 的用法,那就要了解Service 的生命周期有哪些方法,并且生命周期中各个方法回调的时机和作用 什么是service?service的基本概念 Service是Android中实现程序后台运行的解决方案,非常适合用于去执行哪些不需要和用户交互而且还要求长期运行的任务.不能运行在一个独立的进程当中,而是依赖与创建服务时所在的应用程序进程.只能在后台运行…
分类:C#.Android.VS2015: 创建日期:2016-03-01 一.简介 为了进一步简化Intent过滤器的用法,Android系统又提供了一个IntentService类,这样一来,你也不需要重写其他的方法了,直接实现一个继承自IntentService的类,然后重写OnHandleIntent方法即可. IntentService类继承自Service类.这个类自动使用工作线程处理所有Service的启动请求(即:对IntentService的每次请求都会自动启动一个线程去处理它…