2016-02-23 5 views
0

У меня вопрос. В моем внутреннем классе chargeAdapterAsync, я получил mDataModelAsynTask background or not

class chargeAdapterAsync extends AsyncTask< String, String, String > 
{ 
    @Override 
    protected String doInBackground(String... action) 
    { 
     mImageLoader = ImageLoaderFactory.create(context); 
     // set up data 
     mDataModel = new WhaskListDataModel(context, 10); 
     mAdapter = new PagedListViewDataAdapter<UserWhasks>(); 
     mAdapter.setViewHolderClass(this, WhaskListItemViewHolder.class, mImageLoader); 
     mAdapter.setListPageInfo(mDataModel.getListPageInfo()); 

     return null; 
    } 

    @Override 
    protected void onPostExecute(String o) 
    { 
     super.onPostExecute(o); 
     mListView.setAdapter(mAdapter); 
    } 
} 

, когда я иду в моем WhaskListDataModel:

public class WhaskListDataModel extends PagedListDataModel<UserWhasks> { 

    private Context activity; 
    private ListWhasksPagination listWhasksPagination; 

    public WhaskListDataModel(Context activity, int numPerPage) { 
     mListPageInfo = new ListPageInfo<UserWhasks>(numPerPage); 
     this.activity = activity; 
     listWhasksPagination = new ListWhasksPagination(activity, numPerPage); 
    } 

    public void prependItem(UserWhasks item) { 
     WhaskListDataEvent data = new WhaskListDataEvent(); 
     Arra 

тогда я получил ListWhasksPagination класс, и когда я иду, я получил:

public ListWhasksPagination(Context activity, int limitArr) { 
    currentList = new ArrayList<>(); 
    completeList = new ArrayList<>(); 
    completeList = getWhasksResult(activity); 
    this.limitArr = limitArr; 
    firtItem = -1; 
    lastItem = 0; 
} 

private ArrayList<UserWhasks> getWhasksResult(Context activity){ 
    ArrayList<UserWhasks> sortedWhasks = new ArrayList<>(); 
    magnetClient = MagnetMobileClient.getInstance(activity); 
    try { 
     controllerFactory = new UserFactory(magnetClient); 
     user = controllerFactory.obtainInstance(); 
     Call<WhasksPostsResult> callObject = user.getWhasks(
       SharedPreference.ID, 
       SharedPreference.AUTHORIZATION, null); 
     WhasksPostsResult result = callObject.get(); 
     for(WhasksResult whask : result.getWhasks()) { 
      sortedWhasks.add(new UserWhasks(whask)); 
     } 
     Collections.sort(sortedWhasks, Collections.reverseOrder()); 
     return sortedWhasks; 
    } catch (SchemaException e) { 
     Log.e(Constant.LOG_TAG, "can't get userController", e); 
    } catch (ExecutionException e) { 
     Log.e(Constant.LOG_TAG, "failed to execute getUser", e); 
     e.printStackTrace(); 
    } catch (InterruptedException e) { 
     Log.e(Constant.LOG_TAG, "getUser interrupted", e); 
    } 
    return sortedWhasks; 
} 

и в этом последнем классе в getWhaskResult, я возвращаю некоторые элементы, и мне интересно, это getWhaskResult или даже класс ListWhaskPagination также находится в фоновом режиме:/

+1

трудно понять, что это ваша проблема. Пожалуйста, объясните это более четко или с некоторым примером кода –

+0

Трудно решить проблему. Но все, что вы делаете в doInBackground методе AsyncTask, запускается в пуле фоновых потоков / – JEY

ответ

0

Как правило, код, выполняющийся в фоновом режиме, находится в doInBackground. Другой код - нет.

Таким образом, в doInBackground вы находитесь mDataModel = new WhaskListDataModel(context, 10);, который вызывает getWhaskResult. Так getWhaskResult будет выполняться в фоновом режиме

0

Да getWhaskResult выполняет в фоновом режиме, как это называется от doInBackground