syncTask及流概念

AsyncTask:
Params参数:执行任务时的传入参数类型,多数情况使用string类型,同时也是也是DoInBackground()方法的传入参数
Progress参数:在后台发布进度时传入的参数类型,调用publishProgress(Progress),同时也是onProgressUpdate()方法的传入参数
result参数:DoInBackground()方法的返回值类型,同时也是onPostExecute()方法的传入参数类型
onPreExecute()方法:最先执行的方法,该方法执行完毕立即条用DoInBackground()方法,在UI线程中执行
DoInBackground()方法:会自动另起一个线程执行此方法
OnProgressUpdate()方法:该方法只有在publishProgress()方法调用时才会被系统回调,在UI线程中执行
publishProgress()//在后台调用,可用于发布进度。如果不调用publishProgress()方法,那么OnProgressUpdate()方法不会被系统回调
OnPostExecute()方法:在DoInBackground()方法执行完毕后被回调

线程间通讯:
message
messageQueue
handler
looper

4个底层流:
inputStream//字节输入流
outputStream//字节输出流
reader//字符输入流
writer//字符输出流

文件操作:
FileInputStream//以字节为单位
FileOutputStream//以字节为单位
FileReader//以字符为单位
FileWriter//以字符为单位
BufferedReader//以字符为单位。增强了读写文件的能力,如:可以读取一行
BufferedWriter//以字符为单位。
newline()//换行
Android中可以使用线程来实现同步接口的调用,并设置超时时间,当超时时间到达时,可以使用线程的interrupt方法来中断该线程,以达到最大超时退出的效果。 以下是一个示例代码: ```java public class SyncTask implements Runnable { private final Object lock; private final long timeout; private boolean isDone = false; public SyncTask(Object lock, long timeout) { this.lock = lock; this.timeout = timeout; } @Override public void run() { synchronized (lock) { // 进行同步操作 // ... // 标记操作完成 isDone = true; lock.notifyAll(); } } public boolean isDone() { return isDone; } public boolean waitForCompletion() { synchronized (lock) { long startTime = System.currentTimeMillis(); long elapsedTime = 0; while (!isDone && elapsedTime < timeout) { try { lock.wait(timeout - elapsedTime); } catch (InterruptedException e) { // 中断异常,退出等待 break; } elapsedTime = System.currentTimeMillis() - startTime; } return isDone; } } } ``` 在使用该同步任务时,可以创建一个线程并启动它,然后使用waitForCompletion方法来等待任务的完成,该方法会阻塞当前线程并等待超时时间或任务完成,如果超时时间到达而任务未完成,则会中断线程并返回false。 ```java Object lock = new Object(); SyncTask task = new SyncTask(lock, 10000); // 超时时间为10秒 Thread thread = new Thread(task); thread.start(); if (task.waitForCompletion()) { // 任务完成,执行后续操作 // ... } else { // 任务超时,执行超时处理 // ... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值