摘要:1.mAdapter.changeCursor(cursor); NotepadListAdapter extends CursorAdapter { newView() bindView()} 2.LoaderManager类 3.gradle环境升级指南 4.SqliteOpenHelper N
阅读全文
摘要:1.SpannableStringBuilder SapnnableString:其实和String一样,都是一种字符串类型,同样TextView也可以直接设置SpannableString作为显示文本,不同的是SpannableString可以通过使用其方法setSpan方法实现字符串各种形式风格
阅读全文
摘要:1.Android动态布局 http://www.codes51.com/article/detail_1460168.html http://www.cnblogs.com/chiao/archive/2011/08/24/2151824.html 2.OTA、OTG升级 3.Android监听编
阅读全文
摘要:1.actionbarcontextview 2.contentprovider contentresolver contentObserver内容观察者, 作业:写一个通讯录的增删改查 3.异步加载,LoaderManager.LoaderCallbacks<Cursor> 4.monitor.b
阅读全文
摘要:1.线程池相关:mExecutor = Executors.newFixedThreadPool(2); 2.onItemLongClick(Adapter<?> parent, View view, int position, long id){} 3.ListView中notifyDataSet
阅读全文
摘要:1.项目中的listview是自己定制的,从下往上显示item条目。重写了onLayout()方法。 可以参考从源码角度理解listview相关细节:http://blog.csdn.net/guolin_blog/article/details/44996879 View的执行流程无非就分为三步,
阅读全文
摘要:1.mHandler.postDelayed(new Runnable(){ }, delay); 2.Android输入法简介: InputMethodManager:getSystemService()获取实例 hideSoftInputFromWindow(IBinder, int)中的标志,
阅读全文
摘要:1.handler+Thread 和 runOnUIThread 和 handler.post 方法 区别: 从实现原理上,两者别无二致,runOnUiThread也是借助Handler实现的。 对于使用场景,runOnUiThread用法简单,并且共享了同一个Handler,用起来高效、方便。另外
阅读全文
摘要:学习完了CacheDispatcher这个类,下面我们看下NetworkDispatcher这个类的具体细节,先上代码: 网络调度线程也是从队列中取出请求并且判断是否被取消了,如果没取消就去请求网络得到响应并回调给主线程。请求网络时调用this.mNetwork.performRequest(req
阅读全文
摘要:接着volley源码(三)继续,本来是准备写在(三)后面的,但是博客园太垃圾了,写了半天居然没保存上,要不是公司这个博客还没被限制登陆,鬼才用这个。。。真是垃圾 继续解读RequestQueue的源码,Volley 的入口是创建一个 RequestQueue 队列,然后开启一个缓存线程和一组网络线程
阅读全文
摘要:1.什么是线程安全和线程不安全 首先要明白线程的工作原理,jvm有一个main memory,而每个线程有自己的working memory,一个线程对一个variable进行操作时,都要在自己的working memory里面建立一个copy,操作完之后再写入main memory。多个线程同时操
阅读全文
摘要:1.reentrantLock java.util.concurrent.lock 中的Lock 框架是锁定的一个抽象,它允许把锁定的实现作为 Java 类,而不是作为语言的特性来实现。这就为Lock 的多种实现留下了空间,各种实现可能有不同的调度算法、性能特性或者锁定语义。 ReentrantLo
阅读全文
摘要:1. Syncronized与ReentrantLock Synchronized比ReentrantLock进java标准早,因此一开始大家都是用它。相当于Java提供了一种封装的互斥锁机制,对于用户来说,声明成synchronized就可以拿到锁的能力,而不用管具体是怎么加锁解锁的 使用简便也是
阅读全文
摘要:1.线程中断的使用场景 首先,一个线程在未正常结束之前, 被强制终止是很危险的事情. 因为它可能带来完全预料不到的严重后果比如会带着自己所持有的锁而永远的休眠,迟迟不归还锁等。 所以你看到Thread.suspend, Thread.stop等方法都被Deprecated了。 那么不能直接把一个线程
阅读全文
摘要:1. sleep()和wait()的区分 (1)这两个方法来自不同的类分别是,sleep来自Thread类,wait来自Object类。 sleep是Thread的静态类方法,谁调用的谁去睡觉,即使在a线程里调用了b的sleep方法,实际上还是a去睡觉,要让b线程睡觉要在b的代码中调用sleep (
阅读全文
摘要:先来张图: 线程在一定条件下,状态会发生变化: 1.新建状态(New):新创建了一个线程对象 2.就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。 3.运行状态(Running):就绪状态的线
阅读全文
摘要:参考相关博客: http://www.jianshu.com/p/55e3f1b6701f 刘望舒 http://www.jianshu.com/p/4fc6164e4709 王三的猫阿德 http://www.jianshu.com/p/7c3c549a0ec4 王三的猫阿德
阅读全文
摘要:1.Android上下文理解 Android上下文对象,在Context中封装一个所谓的“语境”,Activity、Service、Application都继承自Context,所以在这三者创建时都会创建应用上下文Content 所有的组件共同拥有Application Context,可以通过ge
阅读全文
摘要:一、IntentService与Service的区别 Service 是 Android 四大组件之一,正常来说,我们直接使用 Service 就可以了。 但是 Service 存在几个问题: 默认不会运行在单独的进程中,而是和所在应用共用同一个进程。 Service 也是在主线程中运行,所以一些耗
阅读全文