`
文章列表
d、自己创建新的线程,然后在新线程中创建Looper,主线程调用子线程中的发消息方法,将消息发给子线程的消息队列。 package com.dxyh.test; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.util.Log; public class MainActivity extends Activity { ...
c、将消息队列绑定到子线程上,主线程只管通过Handler往子线程的消息队列中投递消息即可。 package com.dxyh.test; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.os.Message; import android.util.Log; public class Main ...
二:sendMessage版本的Handler的使用 这里介绍几种模型: a、默认的Handler(消息处理队列挂在主线程上)   package com.dxyh.test; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android ...
 一个Handler允许你发送和处理消息(Message)以及与一个线程的消息队列相关的Runnable对象。每个Handler实例都和单个线程以及该线程的消息队列有关。当你创建了一个新Handler,它就会和创建它的线程/消息队列绑定,在那以后,它就会传递消息以及runnable对象给消息队列,然后执行它们。          需要使用Handler有两大主要的原因:        (1)在将来的某个时间点调度处理消息和runnable对象;        (2)将需要执行的操作放到其他线程之中,而不是自己的;         调度处理消息是通过调用post(Runnable), ...
根据方法名可知 这个方法是要得到启动后的Activity返回的数据;  如A 启动了 B ; 那么就是得到B中返回的数据; 1:A package org.zhou.test.start; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.w ...
天天动听, 这款Android手机上的音乐播放器,相信不少朋友都曾用过。 不知大家是否注意到,天天动听有一个迷你歌词的特效。 什么效果呢? 就是不管你切到什么画面, 歌词永远显示,并且可以拖动。 类型QQ音乐,在电脑上播放时显示的歌词效果。 下面先来看一下效果。 这个歌词是在所有界面之上的。 下面我们将这个效果解剖一下, 我认为主要有三个难点: 1.  歌词悬浮在所有页面之上 2.  歌词可以拖动位置 3.  歌词的播放效果 (颜色覆盖) 对于第一点,首先想到的就是 WindowManager , 这个类可能不少人都用过, 一般用于获取屏幕宽度、高 ...

Android GWES

第八章 Android GWES 8.1 View System View & ViewGroup Android的 UI系统是建立在View和ViewGroup之上的。View是组成UI基本部件,而ViewGroup可以把它看做Panel,就是容器。可以把 View和ViewGroup放到一个ViewGroup里布局,这些View和ViewGroup就组成了显示UI的树形结构(下图)。 Activity创建的Window中的主View既DecorView继承自FrameLayout,而FrameLayout又继承自 ViewGroup,这个DecorView就是每个Act ...
WindowManager是Android中一个重要的服务 (Service )。WindowManager Service 是全局的,是唯一的。它将用户的操作,翻译成为指令,发送给呈现在界面上的各个Window。Activity会将顶级的控件注册到 Window Manager 中, 当用户真是触碰屏幕或键盘的时候,Window Manager就会通知到,而当控件有一些请求产生,也会经由ViewParent送回到Window Manager中。从而完成整个通信流程。 整个Android的窗口机制是基于一个叫做 WindowManager,这个接口可以添加view到屏幕,也可以 ...
1.java里的clone分为: A:浅复制(浅克隆): 浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。 b:深复制(深克隆):深复制把要复制的对象所引用的对象都复制了一遍。 Java中对象的克隆,为了获取对象的一份拷贝,我们可以利用Object类的clone()方法。必须要遵循下面三点 1.在派生类中覆盖基类的clone()方法,并声明为public【Object类中的clone()方法为protected的】。 2.在派生类的clone()方法中,调用super.clone()。 3.在派生类中实现Cloneable接口。 Object类里的clo ...
  记下来,很重要。 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。      一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。      二、然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的非synchronized(this)同步代码块。      三、尤其关键的是,当一个线程访问obj ...
打个比方:一个object就像一个大房子,大门永远打开。房子里有很多房间(也就是方法)。这些房间有上锁的(synchronized方法), 和不上锁之分(普通方法)。房门口放着一把钥匙(key),这把钥匙可以打开所有上锁的房间。 另外我把所有想调用该对象方法的线程比喻成想进入这房子某个 房间的人。所有的东西就这么多了,下面我们看看这些东西之间如何作用的。 在此我们先来明确一下我们的前提条件 。该对象至少有一个synchronized方法,否则这个key还有啥意义。当然也就不会有我们的这个主题了。 一个人想进入某间上了锁的房间,他来到房子门口,看见钥匙在那儿(说明暂时还没有 ...
http://www.blogjava.net/cmzy/archive/2009/03/09/258663.html

http通信

HTTP(HyperText Transfer Protocol)是超文本转移协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616。HTTP协议采用了请求/响 应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器 以一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。   通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个 ...
标准Java接口 java.net.*提供与联网有关的类,包括流和数据包套接字、Internet协议、常见HTTP处理。访问 HTTP 服务的基本功能。 使用这部分接口的基本操作主要包括: 创建URL 以及 URLConnection / HttpURLConnection 对象 设置连接参数 连接到服务器 向服务器写数据 从服务器读取数据 import java.io.InputStream; import java.io.OutputStream; import java.net.URL; im ...
1、TCP连接 要想明白Socket连接,先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”: 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到 ...
Global site tag (gtag.js) - Google Analytics