原文网址:http://www.jianshu.com/p/0c6f4b6ed558 上篇<坑爹的AsyncTask之内存泄露>已经简单的探讨过线程使用不当会造成内存泄露的问题,在Activity中如果一个线程超出了Activity的生命周期是极有可能发生内存泄露的,那简单来说我们不让线程的生命周期长于Activity就能从根本上解决这个问题.我们今天探讨的主题就是如何让一个Run起来的线程去stop. 听起来有点不可思议,因为JAVA语言中并没有提供相应的API来停止一个正在运行的线程,再来…
1. AsyncTask和Handler的优缺点比较: 1)AsyncTask实现的原理和适用的优缺点        AsyncTask是Android提供的轻量级的异步类,可以直接继承AsyncTask(AsyncTask是抽象类),在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. AsyncTask使用的优点: l  简单,快捷 ll  过程可控 AsyncTask使用的缺点: l  在使用多个异步操作和并需要进行Ui变更…
1. AsyncTask和Handler的优缺点比较: 1)AsyncTask实现的原理和适用的优缺点        AsyncTask是Android提供的轻量级的异步类,可以直接继承AsyncTask(AsyncTask是抽象类),在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程. AsyncTask使用的优点: l  简单,快捷 ll  过程可控 AsyncTask使用的缺点: l  在使用多个异步操作和并需要进行Ui变更…
Elasticsearch 的坑爹事 本文记录一次Elasticsearch mapping field修改过程 团队使用Elasticsearch做日志的分类检索分析服务,使用了类似如下的_mapping { "settings" : { "number_of_shards" : 20 }, "mappings" : { "client" : { "properties" : { "ip&quo…
最近有个项目,要发邮件给用户设定的邮箱报警,然后就用了163邮箱,代码是网上借来的^^,如下: package com.smartdoorbell.util; import android.os.AsyncTask; import java.util.Date; import java.util.List; import java.util.Properties; import javax.activation.CommandMap; import javax.activation.Mailca…
Service和Thread的关系: 不少Android初学者都可能会有这样的疑惑,Service和Thread到底有什么关系呢?什么时候应该用Service,什么时候又应该用Thread?答案可能会有点让你吃惊,因为Service和Thread之间没有任何关系!   之所以有不少人会把它们联系起来,主要就是因为Service的后台概念.Thread我们大家都知道,是用于开启一个子线程,在这里去执行一些耗时操作就不会阻塞主线程的运行.而Service我们最初理解的时候,总会觉得它是用来处理一些后…
惯用AsyncTask的朋友可能会发现AsyncTask的坑: Android executes AsyncTask tasks before Android 1.6 and again as of Android 3.0 in sequence by default. 即:Android从3.0开始,AsyncTask为顺序执行方式.这种顺序方式指的是,所有的使用AsyncTask的类均会在应用中排一个序,按顺序执行! 这就导致有时候发现AsyncTask迟迟得不到执行被莫名其妙得delay了…
ProgressBar时android用于显示进度的组件.当执行一个比较耗时的操作(如io操作.网络操作等),为了避免界面没有变化让用户体验降低,提供一个进度条可以让用户知道程序还在运行. 一.ProgressBar有如下几种常见样式 1.默认进度条的样式为圆圈(为中等大小的圆圈) <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" />…
Elasticsearch 的坑爹事 本文记录一次Elasticsearch mapping field修改过程 团队使用Elasticsearch做日志的分类检索分析服务,使用了类似如下的_mapping 1 2 3 4 5 6 7 8 9 10 11 12 13 14 {     "settings" : {         "number_of_shards" : 20     },     "mappings" : {       &qu…
今天看书的时候,看到用ADSI设置Universal Group Membership Caching,就想到用.Net Framework来实现,找了半天,才找到System.directoryservices.activedirectory.activedirectorysite下面的options,这个可能跟ActiveDirectorySiteOptions有关系,在ActiveDirectorySiteOptions枚举里可是有GroupMembershipCachingEnabled…