您的位置:首页 > 移动开发 > Android开发

Android中跨越ACTIVITY的全局线程

2013-06-01 23:43 239 查看
做个广告先,

PHP群(6848027)

C++群 (1414577)

汇编&反汇编群(15375777)

转载请注明出处~3Q~

关键:
Handle :类似C#的委托,C++中的函数指针 ,也可理解成CALLBACK
在做服务端消息循环查找时,如果一个ACTIVITY创建了一个线程。从这个ACTIVITY切换到另一个ACTIVITY时,上一个ACTIVITY会压入堆栈,那个线程会出现挂起状态,无法继续循环读取服务端数据,拿不到服务端数据了.

目前想到的方法是,创建一个专用的更新服务端消息类,然后每个页面实现一个Handle ,线程中发消息通知UI更新

先完成,再优化..

public class MyGetJobActiveThread {
private static Context mContext = null;

private Thread getJobMsgTheread = null;

private static Handler mHandler = null;

public void setContext(Context vContext)
{
this.mContext = vContext;
}

public void RegisterHandle(Handler hand)
{
this.mHandler = hand;
}

public void UnRegisterHandle(Handler hand)
{
this.mHandler  = null;
}

public void StartGetJobMsgThread()
{
getJobMsgTheread = new Thread(mGetJobMsg);
getJobMsgTheread.start();
}

//检查服务端是否有消息
private Runnable mGetJobMsg = new Runnable() {
@Override
public void run() {
try {
while(true)
{

//.......................................................

if (!contens.equals("2"))
{//有消息
mHandler.sendEmptyMessage(MyConstants.JOBMSG01);

}else
{
mHandler.sendEmptyMessage(MyConstants.JOBMSG02);
}
}

}catch(Exception e){
Log.e("err", e.getMessage().toString());
}

}
};


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: