WunWun' Blog

Talk is cheap

如何正确的导入Android Studio工程

由于Android Studio中的Gradle经常会有版本更新。如果某个项目使用的是Gradle2.0进行的编译,而本地又没有该版本的Gradle的时候,Android Studio就回去下载这个版本的Gradle。在天朝,呵呵,导致Android Studio卡死。 正确的导入方法 首先在本地用当前版本的Gradle创建一个正常的项目,保证可以编译通过即可。然后,用本地项目中的Grad...

Android中的context

Android中的Context,可以理解为当前对象在程序中所处的一个环境,一个与系统交互的过程。 Activity,Service,Application都继承自Context。 Android应用程序会在如下所示的几个时间点创建应用上下文Context。 创建Application 创建Activity 创建Service 创建Context的时机就是在创建Cont...

Git教程

Git基本用法 安装Git Ubuntu上一个命令就够了 sudo apt-get install git-core Windows用户去这里下载. 配置Git git config --global user.name "James" git config --global user.email "james@gmail.com" 创建代码仓库 先创建目录,然后在这个目...

网络编程最佳实践

使用HTTP协议访问网络 通常情况下我们都应该将这些通用的网络操作提取到一个公共的类里,并提供一个静态方法,当想要发起网络请求的时候只需简单地调用一下这个方法即可。 public class HttpUtil { public static void sendHttpRequest(final String address) { HttpURLConnection...

Android中的网络技术

Http,XML,JSON

使用HTTP协议访问网络 HTTP 协议的工作原理特别的简单,就是客户端向服务器发出一条HTTP 请求,服务器收到请求之后会返回一些数据给客户端,然后客户端再对这些数据进行解析和处理就可以了。 在 Android 上发送 HTTP 请求的方式一般有两种, HttpURLConnection 和 HttpClient. 使用 HttpURLConnection GET方法 U...

服务的最佳实践

后台执行的定时任务

关于定时的基础知识 Android 中的定时任务一般有两种实现方式,一种是使用 Java API 里提供的 Timer 类,一种是使用 Android 的 Alarm 机制。这两种方式在多数情况下都能实现类似的效果,但 Timer有一个明显的短板,它并不太适用于那些需要长期在后台运行的定时任务。我们都知道,为了能让电池更加耐用,每种手机都会有自己的休眠策略, Android 手机就会在长时...

Android中的服务

服务是个什么鬼

这是《第一行代码》复习笔记的第九章. 服务是什么 服务(Service)是Android中实现程序后台运行的解决方案,它非常适合用于去执行那些不需要和用户交互而且还要求长期执行的任务。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。 服务并不是运行在一个独立的进程当中,而是依赖于创建服务时所在的应用程序进程。当某个...

接收和发送短信

接收短信主要是利用我们前面学过的广播机制。当手机接收到一条短信的时候,系统会发出一条值为andorid.provider.Telephony.SMS_RECEIVED的广播,这条广播里携带着与短信相关的所有数据。每个应用程序都可以在广播接收器里对它进行监听,收到广播时在从中解析出短信的内容即可。 接收短信 首先创建一个广播接收器来接受系统发出的短信广播。在MainActivity中新建M...

Android中的通知

这是《第一行代码》复习笔记的第八章. 通知的基本用法 当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一条通知后,手机最上方的状态栏会显示一个通知的图标,下拉状态栏后就可以看到通知的详细内容。 首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystemService()...

实现跨程序共享

实现跨程序数据共享 public class DatabaseProvider extends ContentProvider { public static final int BOOK_DIR = 0; public static final int BOOK_ITEM = 1; public static final int CATEGORY_DIR = 2; public...