java - 我们需要在哪个 fragment 方法中消费长期的weservice

标签 java android android-fragments

哪种方法适合从 android fragment 调用 Web 服务?

  • oncreateView()
  • oncreate()
  • onViewCreated()

最佳答案

使用onStart()方法

  • onStart() mentod 中使用 Async Task 调用并运行 后台线程
  • 在 AsyncTask 中使用 doInBackground() 来运行采取的方法 执行时间更长
  • onPreExecute()onPostExecute() 中更新 UI 线程, onProgressUpdate()

Async task Example :

public class FrgLatein extends Fragment {
    //New-Instance
    public static FrgLatein newInstance(){
        Log.d("FrgLatein", "newInstance");
        FrgLatein fragment = new FrgLatein();
        return  fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        Log.d("FrgLatein", "onCreateView");
        View view=inflater.inflate(R.layout.frg_latein, container, false);
        setHasOptionsMenu(true);


        return view;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        Log.d("FrgLatein", "onActivityCreated");
        super.onActivityCreated(savedInstanceState);

    }

    @Override
    public void onStart() {
        Log.d("FrgLatein", "onStart");
        super.onStart();
        new LongOperation().execute("");

    }

private class LongOperation extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... params) {
             // Do the Web service long run here
            return "Executed";
        }

        @Override
        protected void onPostExecute(String result) {
          // Do the UI-task here
        }

        @Override
        protected void onPreExecute() {
          // Do the UI-task here
        }

        @Override
        protected void onProgressUpdate(Void... values) {
          // Do the UI-task here which has to be done during backgroung tasks are running like a downloading process
        }
    }

}

关于java - 我们需要在哪个 fragment 方法中消费长期的weservice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25988192/

相关文章:

java - 禁用当前应用程序的推送通知 android java

android studio 无法解析导入 org.json.JSONObject

java - Android 应用程序 - 开发 Wifi 文件传输

android - 如何仅在 PagerSlidingTabStrip 中单击其选项卡时加载 fragment 数据

java - 如何在 PHP 中并行发出多个 HTTP 请求?

java - Android - CSV 多行发布到 PHP 服务器

java - 如何在log4j中禁用DEBUG?

java - Java 中的 For-each 循环

android - 不从导航 View 中突出显示选定的子项

android - 如何使用xml在底部导航 View 上方设置 fragment ?