基本概念:service是android四大组件之一,运行在后台执行耗时操作,并不提供用户界面。其他组件如acticity可以通过startService启动该组件,也可以通过bindService启动并把绑定该组件进行通信。使用场景后台下载文件,以及播放音乐等注意service运行在主线程中,他不会创建属于自己的线程,也不是运行在独立的线程中,所以在使用的时候,需要自己创建线程,而不应该直接使用,...
分类:
移动开发 时间:
2015-05-22 09:46:56
阅读次数:
178
一:进程和线程1:什么是进程进程是指在系统中正在运行的一个应用程序
每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内。
比如同时打开QQ、Xcode,系统就会分别启动2个进程。通过“活动监视器”可以查看Mac系统中所开启的进程。2:什么是线程1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程——主线程)。
线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程...
分类:
移动开发 时间:
2015-05-22 08:15:34
阅读次数:
181
基于MFC的界面程序中,如果存在多线程,一般情况下只有主线程(界面线程)可以调用Windows窗口相关的函数,否则如果在其他线程中调用了界面函数,很可能会造成异常。为此DuiVision界面库提供了一个任务队列和相应的调度机制,可以将各种任务对象放到任务队列中按顺序执行,通过任务队列,可以做到其他线程和界面线程之间的中转调用,方法是创建任务对象时候指定是需要界面线程处理的任务,则任务调用过程中会通...
分类:
其他好文 时间:
2015-05-22 00:34:32
阅读次数:
195
本文主要涉及,线程的构建,线程之间的通信以及网络源端和目的端的通信接口的操作这三个问题。
一、线程的创建
对于线程的创建,首先要明确使用线程的目的,使用线程给我们的程序能够带来什么好处。结合我的经验,我认为使用线程的好处主要有:
1.线程是一个独立运行的个体,它可以独立完成我们交给它的任务,而不需要我们在程序中主动显式调用;
2.当程序处理的问题及逻辑庞大时,显然,线程可以降低主线程的复杂...
分类:
编程语言 时间:
2015-05-21 22:43:59
阅读次数:
343
进程:正在进行中的程序被称为进程,负责程序运行的内存分配;每一个进程都有自己独立的虚拟内存空间.线程:(主线程最大占1M的栈区空间,每条子线程最大占512K的栈区空间) 线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈)线程是进程中一个独立的执行路径(控制...
分类:
移动开发 时间:
2015-05-21 10:31:30
阅读次数:
167
断断续续调试好几天,才把X5WebView的整体流程大概了解清除。本篇是上篇,侧重于讲java层的逻辑。
整个WebKit主要分为2个线程,一个是Ui线程,也就是应用程序使用WebView所在的主线程,另一个WebCore线程。webview.java运行在ui线程,webviewcore运行在webkit线程,之间通过消息通信。不同webview对应不同webviewcore(同...
分类:
Web程序 时间:
2015-05-20 20:40:36
阅读次数:
2091
在android系统当中,有一个非常重要的铁律,在UI线程之外,是不能修改UI的,在后台线程,新起一个线程,得到的数据结果是不能直接反映在UI上的。这样的一个问题,我们急需一种机制来解决。MainThread (UI线程)和 WorkrThread (除了主线程之外的其他的线程都叫workThrea...
分类:
其他好文 时间:
2015-05-20 08:14:16
阅读次数:
128
等待多个子线程结束后再执行主线程class MultiThread{ #region join test public void MultiThreadTest() { Thread[] ths = new Thread[2]; ths[0] = new Thread(Method...
分类:
编程语言 时间:
2015-05-20 00:14:55
阅读次数:
261
android之文件下载android文件下载有三个要点
不能在主线程中下载文件
在配置文件中给定权限
使用http协议的get方法连接网络下载文件
做好这三点就可以成功的下载文件了,前面两点非常简单,但很容易忘记
一般程序崩溃都是因为这两个原因啦。而重点学习了如何使用http协议中的get方法。public class Download {
/**
* 文本文件下载方法,接受...
分类:
移动开发 时间:
2015-05-19 22:49:59
阅读次数:
267
1.用标识符flag来停止。
2.用interrupt()方法来停止,但是得用(!Thread.interrupted())判断一下方可以终止线程,起到了flag的作用
3.也可以用stop()方法终止线程,但是该方法已经被废弃,虽然可以,但已经不推荐用了。对于冻结的线程仅凭flag标识是不足以终止线程的,主线程结束了,t2 t1直接wait()了,如果线程处于了冻结状态,就无法读取标记,所以就引入了第二种结束线程的方式interrupt(),直接用interrupt()方法终止线程是无效的,但是inter...
分类:
编程语言 时间:
2015-05-19 22:43:40
阅读次数:
140