Java 在哪个片段方法中,我们需要长期使用weservice
用哪种方法从android片段调用web服务比较合适Java 在哪个片段方法中,我们需要长期使用weservice,java,android,android-fragments,Java,Android,Android Fragments,用哪种方法从android片段调用web服务比较合适 oncreateView()或 oncreate()或 onViewCreated() 使用onStart()方法 在onStart()mentod中使用Async Task调用并运行 背景线程 在AsyncTask中,使用doInBackground()来运行 执行时间更长 更新onPreExecute(),onPostExecute()中的UI线程, onProgressUpdate() : 公共类FrgLatein扩展片段{ /
- oncreateView()或
- oncreate()或
- onViewCreated()
onStart()
方法
- 在
mentod中使用onStart()
调用并运行 背景线程Async Task
- 在AsyncTask中,使用
来运行 执行时间更长doInBackground()
- 更新
,onPreExecute()
中的UI线程,onPostExecute()
onProgressUpdate()
:
公共类FrgLatein扩展片段{
//新实例
公共静态FrgLatein newInstance(){
Log.d(“FrgLatein”、“newInstance”);
frgaltein片段=新frgaltein();
返回片段;
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
Log.d(“FrgLatein”、“onCreateView”);
视图=充气机。充气(R.layout.frg_latein,容器,假);
设置选项菜单(真);
返回视图;
}
@凌驾
已创建ActivityState上的公共无效(Bundle savedInstanceState){
Log.d(“frglastein”,“onActivityCreated”);
super.onActivityCreated(savedInstanceState);
}
@凌驾
public void onStart(){
Log.d(“FrgLatein”、“onStart”);
super.onStart();
新建LongOperation()。执行(“”);
}
私有类LongOperation扩展了异步任务{
@凌驾
受保护的字符串doInBackground(字符串…参数){
//Web服务在这里长期运行吗
返回“已执行”;
}
@凌驾
受保护的void onPostExecute(字符串结果){
//在这里执行UI任务
}
@凌驾
受保护的void onPreExecute(){
//在这里执行UI任务
}
@凌驾
受保护的void onProgressUpdate(void…值){
//在这里执行UI任务,这必须在后台任务像下载过程一样运行时完成
}
}
}
您可以调用片段的onCreateView()
方法,如下所示-
public class MainActivity extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.mainFragment,container ,false);
new GetWebService().execute();
return view;
}
class GetWebService extends AsyncTask<String, String, String>
{
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
protected String doInBackground(String... args)
{
//Call Webservice here and return the result
return "";
}
protected void onPostExecute(String result)
{
//Do something with result
}
}
public类MainActivity扩展片段
{
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图=充气机。充气(右布局。主碎片,容器,假);
新建GetWebService().execute();
返回视图;
}
类GetWebService扩展了AsyncTask
{
@凌驾
受保护的void onPreExecute()
{
super.onPreExecute();
}
受保护的字符串doInBackground(字符串…args)
{
//在此处调用Webservice并返回结果
返回“”;
}
受保护的void onPostExecute(字符串结果)
{
//做一些有结果的事情
}
}
hey检查这些链接:您的需求或问题需要更多详细信息。没有,有效的实施将通过在代码中加入适当的设计模式,特别是观察者模式来实现。粗体不是必需的。在需要的地方使用粗体,而不是一直使用粗体。您在回答问题时总是使用粗体,这是不正确的实际需要。仍然有一些文本是粗体的。这不是必需的。在需要的地方使用粗体。@SilentKiller…Done:)
public class MainActivity extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.mainFragment,container ,false);
new GetWebService().execute();
return view;
}
class GetWebService extends AsyncTask<String, String, String>
{
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
protected String doInBackground(String... args)
{
//Call Webservice here and return the result
return "";
}
protected void onPostExecute(String result)
{
//Do something with result
}
}