【问题标题】:Use Asynctask for multiple Fragments对多个 Fragment 使用 Asynctask
【发布时间】:2018-09-20 13:56:19
【问题描述】:

我有 2 个片段 java 类,需要使用相同的异步任务。无论如何我可以做到这一点,还是我必须在两个片段类中复制/粘贴相同的异步任务?我总共有这 3 个 java 类:

  • 主要活动
  • dataTabelFragment
  • sensorOverviewFragment

asynctask 正在从 json URL 获取数据。

也许可以为异步任务创建另一个 java 类?

感谢所有帮助!

【问题讨论】:

    标签: java android android-asynctask fragment


    【解决方案1】:

    您所说的建议您应该将异步任务代码与两个片段分离,而是让您的片段调用以完成工作的单独工作人员(也许IntenstService 会在这里为您提供良好的服务)。或者,取决于你的代码结构(如果你还没有考虑过这个,你应该考虑一下:)也许你的异步任务代码应该是你片段的基类的一部分,然后它们都会扩展。

    【讨论】:

      【解决方案2】:

      我猜你的片段在同一个Activity(MainActivity)中,所以你可以把你的AsyncTask放在你的MainActivity.class中,你的片段可以通过监听器与你的Activity通信。像这样的:

      public class YourFragment extends Fragment{
      
          private YourListener mListener;
      
          @Override
          public void onAttach(Context context) {
              super.onAttach(context);
              try {
                  mListener = (YourListener) context;
              } catch (ClassCastException e) {
                  throw new ClassCastException(context.toString() + " must implement YourFragment");
              }
          }
      
          @Override
          public void onDetach() {
              super.onDetach();
              mListener = null;
          }
      
          interface OnSearchFilterListener {
      
              void onItemClick(int position);
      
          }   
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多