子线程如何异步更新Fragment的UI界面
2017-01-02 06:04
246 查看
请问:我在登录界面中登录成功后,异步执行了线程类,该类作用是:从网络上获取了相关信息,读取后
通过Handler通知Fragment_Contacts界面!
但是问题来了,由于异步执行了线程,时间是不一定的!有时候线程执行完毕了!但是操作界面没有停留在
Fragment_Contacts时就会报错:“空指针”!
如果登陆后马上切换到Fragment_Contacts界面,则正常!
但是实际上这种操作是不靠谱的,因为该Fragment只是其中一个而已。 我怀疑是线程执行后,而Fragment由于没有切换过去,所以还没有加载完毕!
我想得到的效果就是线程能够正常执行,界面不需要停留在指定的Fragment上面!如果停留了,也能看异步看到信息更新了!
希望能给例子说明一下,或者说说思路,给点重要方法函数等,谢谢各位。
通过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上面!如果停留了,也能看异步看到信息更新了!
希望能给例子说明一下,或者说说思路,给点重要方法函数等,谢谢各位。
相关文章推荐
- 子线程如何异步更新Fragment的UI界面
- Android异步机制一:使用Thread+Handler实现非UI线程更新UI界面
- Android异步机制一:使用Thread+Handler实现非UI线程更新UI界面
- Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
- Android-初识Handler-子线程异步更新UI
- 在wpf的用户线程中更新ui界面
- 如何实现非ui线程更新ui线程?
- WPF:如何在工作线程中更新窗体的UI元素(Dispatcher机制)
- Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
- 使用AsyncTask异步更新UI界面
- 在分线程更新主线程的Ui界面方法
- XAF 如何用其他线程更新对象(转载)
- 在WPF的用户线程中更新UI界面
- WP7 HttpWebRequest跨线程异步更新界面UI
- Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
- WPF:如何在工作线程中更新窗体的UI元素(Dispatcher机制)
- 工作线程中如何更新界面
- ATL Com 如何用线程产生异步事件
- 通过Handler来更新本线程的UI界面
- Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面