实现子线程对主线程界面的控制方法有两种方法:
1、主界面线程建立消息处理机制,然后调用子线程(传递主线程消息处理句柄Handler)进行事务处理,事务处理完成后,通过主线程的消息Handler发送消息给主线程,由主线程控制界面。
2、主线程调用子线程,并通过在子线程中调用主线程的回调函数来实现,方法如下:
一、子线程类定义接口并将该接口设置为该类的私有成员
public class UpdateManager
{
//设置该接口类型的私有成员
private UpdateCallback callback;
//接口定义,
public interface UpdateCallback
{
public void updateProgress(int progress);
}
}
二、主线程类实现接口,有两种方法
方法一:通过类继承(实现)接口的方式
public class MainActivity extends Activity implements UpdateManager.UpdateCallback
{
//接口内函数的实现
public void updateProgress(int progress)
{
//进行进度条更新处理
}
}
方法二:通过new 一个接口实现方式:
UpdateManager.UpdateCallback appUpdateCb = new UpdateManager.UpdateCallback()
{
public void updateProgress(int progress)
{
//进行进度条更新处理
}
}
三、主线程调用子线程,子线程进行事务处理,完成后,调用接口实现对主界面的更新