Java 在哪个片段方法中,我们需要长期使用weservice

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扩展片段{ /

用哪种方法从android片段调用web服务比较合适

  • oncreateView()或
  • oncreate()或
  • onViewCreated()
使用
onStart()
方法

  • onStart()
    mentod中使用
    Async Task
    调用并运行 背景线程
  • 在AsyncTask中,使用
    doInBackground()
    来运行 执行时间更长
  • 更新
    onPreExecute()
    onPostExecute()
    中的UI线程,
    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
    }
}