请问 想实现以下效果,代码具体应该怎么处理呢?
FragmentA中 想调用 testA类里边 getdata() 函数,而这个函数返回一个list。
而这个函数 要通过访问 网络数据库获取数据并返回相应的数据CustomHttpClient.postByHttpClient(String);
但是 访问网络数据库要启动线程才能访问网络数据库,否则会报错的。
即:
public class FragmentAextends BaseFragment {
。。。
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
testa = new testA();
list= testa.getdata();
}
}
public class MemberChat {
...
public List<Info> getLocalData ( ) {
xxxxxxxxx / /这个地方应该怎么写呢
return mList;
}
public class testThread extends Thread {
private static final String TAG = "test";
public void run() {
....
list =CustomHttpClient.postByHttpClient(String);
.
}
}
}
------解决思路----------------------
在那里面你把那个线程启动 把获得的值返回就ok了
------解决思路----------------------
使用handler吧 在访问完成后 发送message
------解决思路----------------------
使用handler吧 在访问完成后 发送message
在那里面你把那个线程启动 把获得的值返回就ok了
@u012456102 非常感谢您的回复
您的意思是 在下边的代码里边 启动线程 ,但是 怎么获取 线程的返回值呢?
麻烦再帮忙回复下吧,谢谢啦
public List<Info> getLocalData ( ) {
mtestThread = new testThread ();
mtestThread.start(); // 但是怎么获得返回值呢
return mList;
}
@ u012456102 非常感谢您的回复
那您的意思是说 是不能封装具有这个功能的函数的。 是这个意思吗?
比如在一个类里边有 getnetworkdata() , updatenetworkdata()分别代表 获取网络数据,和更新网络数据的函数。
那么 按您所说的,就是在函数里边 启动线程,然后最后就 sendmessage() 告知处理完。 这样的话,就是不能实现封装好实现的函数功能了哦
------解决思路----------------------
使用handler的原因是只能在主线程中更新控件,如果你的 updatenetworkdata()方法没有更新控件的话,可以在getnetworkdata() 里面直接调用 updatenetworkdata() 使用handler吧 在访问完成后 发送message
在那里面你把那个线程启动 把获得的值返回就ok了
@u012456102 非常感谢您的回复
您的意思是 在下边的代码里边 启动线程 ,但是 怎么获取 线程的返回值呢?
麻烦再帮忙回复下吧,谢谢啦
public List<Info> getLocalData ( ) {
mtestThread = new testThread ();
mtestThread.start(); // 但是怎么获得返回值呢
return mList;
}
@ u012456102 非常感谢您的回复
那您的意思是说 是不能封装具有这个功能的函数的。 是这个意思吗?
比如在一个类里边有 getnetworkdata() , updatenetworkdata()分别代表 获取网络数据,和更新网络数据的函数。
那么 按您所说的,就是在函数里边 启动线程,然后最后就 sendmessage() 告知处理完。 这样的话,就是不能实现封装好实现的函数功能了哦
@u012456102 非常感谢您的回复
可能我表达的不清楚。
其实是 我想 使用 MVC 模式
在 M层,即用一个类 封装 一些 跟网络数据库有关的函数。 比如 getnetworkdata()获取网络数据
updatenetworkdata() 更新网络数据。
然后 C层就可以调用 M层里边的 这些函数,以便得到网络数据。
但是 现在问题是 getnetworkdata() 不能返回 获取网络的数据list。
请问 这个getnetworkdata() 真的不能返回网络数据的吗