比如说 要在一个类ABC里边 实现一个 updatenetworkdata()的函数,而这个函数是返回list的。 这样方便调用,比如说在 activity中 调用 mABC= new ABC ();mABC.updatenetworkdata() 获得相应更新后的数据。 但是 访问网络数据库是需要启动线程才能够访问的。即HttpClient.postByHttpClient(acv); 也就是说 有没有可能让updatenetworkdata() 这个函数访问完网络数据库后,返回相应的数据呢? 麻烦会的朋友帮忙回复下,谢谢啦 |
|
15分 |
那你就把updatenetworkdata放到异步线程中,或者网络请求完毕后,触发一个回调,回调中你去调用updatenetworkdata
|
@bdmh 非常感谢您的回复, 麻烦再帮忙回复下。 类ABC里边 实现一个 updatenetworkdata()的函数 } |
|
15分 |
interface MyCallBack { public void onData(Object t); public void onError(String error, int code); } public void updatenetworkdata(final String url, final MyCallBack callBack) { new Thread() { public void run() { //做网络数据操作 List list = ... callBack.onData(list); } }.start(); } |
@ birdsaction 非常感谢您的回复 有个地方实在是太会写,麻烦再帮忙回复下。 就是比如 我要在fragmentacb.java里边 要调用这个函数,那怎么给这个函数的 第二个参数怎么写呢? public class EndFragment extends BaseFragment { mABC = new ABC(); } public class ABC{ interface MyCallBack { }.start(); } |
|
15分 |
public class MyActivity { public void onCreate() { } MyCallBack callback = new MyCallBack() { @Override public void onError(String error, int code) { } @Override public void onData(Object t) { } }; } |
@ birdsaction 非常感谢您的回复 还有个地方想请问下,麻烦再帮忙回复下。 是不是 我写的代码有问题呢? 就是关于 当运行到 回调函数的时候,利用回调的函数 进行更新 listview的时候,会提示错误的: public class FFragment extends BaseFragment { mChat.updatenetworkdata(null,new MemberChatCallBack(){ } } public class Chat{ public void updatenetworkdata(final String url, final MyCallBack callBack) { }.start(); } |
|
15分 |
线程运行完更新UI 用handler更新 不能直接更新
|