随机推荐
Launcher2源码之壁纸设置
上回我们简单介绍了Launcher中的布局,这次我们看看如何设置壁纸。在Launcher界面,长按空白处,就会弹出如上图的壁纸设置对话框。直接上代码Launcher.java1. onCreate() 加载布局和初始化控件 @Override protected v...
Socket的简单使用记录
前言Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信。两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户端向服务器发送请求后,服务器端才能向客户端返回数据。而Socket通信则是在双方建立起连接后就可以直接进行数据的传输,...
AsyncTask源码分析UML流程图
好早想学习画流程图,但一直拖着没有真正的画。最近分析了《AsyncTask源码分析》因此为这画了一个流程图,作为练习。图画得不是很好,主要是为了表达一下对AsyncTask的步骤理解。因为刚开始学画UML,有些细节没有把握好,望理解。谢谢 在SyncTask中,会调用两次PostR...
[摘]android6.0运行时动态申请权限
从Android6.0以后,Android是不会主动获取需要权限,改为了需要提示用户手动获取,系统应用除外。1. 运行时获得权限:从androi 6.0开始,不再是安装应用时用户确定获得全部的权限.而是在使用软件过程中需要该权限时,弹出对话框让用户选择权限.不仅如此,用户选择权限后还可以关闭。...
Settings源码分析之蓝牙(1)
源码:Android 6.0应用:Settings目录:Settings\src\com\android\settings\bluetooth 上一回我们简单分析了Settings加载和启动过程(《Android 6.0 Settings源码简单分析》),现在我们来看看S...
Adapter的getView方法返回了null
前言这个是很简单的问题,就是适配器(比如BaseAdapter)中的getView()返回了null,是如下: @Override public View getView(int position, View convertView, ViewGroup parent) { ...