您的位置:首页 > 产品设计 > UI/UE

子线程如何异步更新Fragment的UI界面

2016-12-31 05:15 225 查看
请问:我在登录界面中登录成功后,异步执行了线程类,该类作用是:从网络上获取了相关信息,读取后

通过Handler通知Fragment_Contacts界面!

public class LoadFriendDb extends Thread {

:

:

:

android.os.Message msg = Fragment_Contacts.HandlerListen.obtainMessage();

msg.what = 0;

msg.sendToTarget();

}


public class Fragment_Contacts extends Fragment {

public View onCreateView(.....)

{

:

:

// 监听UI handler

HandlerListen = new Handler() {

public void handleMessage(android.os.Message msg) {

String[] args = (String[]) msg.obj;

switch (msg.what) {

case 0:// 刷新

res();

break;

default:

break;

}

}

};

}

:

:

:

}


但是问题来了,由于异步执行了线程,时间是不一定的!有时候线程执行完毕了!但是操作界面没有停留在

Fragment_Contacts时就会报错:“空指针”!

如果登陆后马上切换到Fragment_Contacts界面,则正常!

但是实际上这种操作是不靠谱的,因为该Fragment只是其中一个而已。 我怀疑是线程执行后,而Fragment由于没有切换过去,所以还没有加载完毕!

我想得到的效果就是线程能够正常执行,界面不需要停留在指定的Fragment上面!如果停留了,也能看异步看到信息更新了!

希望能给例子说明一下,或者说说思路,给点重要方法函数等,谢谢各位。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: