Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
DoomGrey
0 / 0 / 0
Регистрация: 03.07.2015
Сообщений: 1
#1

Организовать что бы AsyncTask запускался в фрагменте раз в определененное время - Программирование Android

05.07.2015, 16:50. Просмотров 236. Ответов 0
Метки нет (Все метки)

Я использую Asynctask для загрузки данных через Volley. Не могу понять как организовать что бы этот AsyncTask запускался в фрагменте раз в определененное время. По сколько я только начинаю разбираться в AsyncTask и вообще в Android программирование то не совсем понимаю как это можно эффективно реализовать. Это приложение было построенно по примерам и в я не совсем понимаю зачем вообще этот Listner.

Это мой отдельный класс для AsyncTask
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.aa.qc.task;
 
import android.os.AsyncTask;
 
import com.aa.qc.callbacks.ZleceniaLoadedListner;
import com.aa.qc.extras.ZleceniaSorter;
import com.aa.qc.extras.ZleceniaUtils;
import com.aa.qc.network.VolleySingleton;
import com.aa.qc.pojo.Zlecenia;
import com.android.volley.RequestQueue;
 
import java.util.ArrayList;
 
 
public class TaskLoadZlecenia extends AsyncTask<Void, Void, ArrayList<Zlecenia>>{
 
    private ZleceniaLoadedListner myComponent;
    private VolleySingleton volleySingleton;
    private RequestQueue requestQueue;
    private ZleceniaSorter mSorter = new ZleceniaSorter();
 
 
    public TaskLoadZlecenia(ZleceniaLoadedListner myComponent) {
        this.myComponent = myComponent;
        volleySingleton = VolleySingleton.getsInstance();
        requestQueue = volleySingleton.getmRequestQueue();
 
    }
 
 
    @Override
    protected ArrayList<Zlecenia> doInBackground(Void... params) {
 
        ArrayList<Zlecenia> listZlecenias = ZleceniaUtils.loadZlecenia(requestQueue);
        mSorter.sortZleceniaByTime(listZlecenias);
        return listZlecenias;
    }
 
    @Override
    protected void onPostExecute(ArrayList<Zlecenia> listZlecenias) {
        if (myComponent != null) {
            myComponent.onZleceniaLoaded(listZlecenias);
 
        }
    }
 
}
Это мой listner.class
Java
1
2
3
4
5
6
7
8
package com.aa.qc.callbacks;
 
import com.aa.qc.pojo.Zlecenia;
import java.util.ArrayList;
 
public interface ZleceniaLoadedListner {
    public void onZleceniaLoaded(ArrayList<Zlecenia> listZlecenias);
}
Это мой фрагмент где я это хочу реализовать
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
public class FragmentZlecenia extends Fragment implements SortListener, ZleceniaLoadedListner, SwipeRefreshLayout.OnRefreshListener {
 
    // TODO: Rename parameter arguments, choose names that match
    // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";
 
    private ArrayList<Zlecenia> listZlecenias = new ArrayList<>();
    private RecyclerView zleceniaArrived;
    private AdapterZlecenia adapterZlecenia;
 
    private SwipeRefreshLayout mSwipeRefreshLayout;
    private ZleceniaSorter mSorter = new ZleceniaSorter();
 
 
    // TODO: Rename and change types of parameters
    private String mParam1;
    private String mParam2;
 
 
    /**
     * Use this factory method to create a new instance of
     * this fragment using the provided parameters.
     *
     * @param param1 Parameter 1.
     * @param param2 Parameter 2.
     * @return A new instance of fragment FragmentZlecenia.
     */
    // TODO: Rename and change types and number of parameters
    public static FragmentZlecenia newInstance(String param1, String param2) {
        FragmentZlecenia fragment = new FragmentZlecenia();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }
 
    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
    }
 
    public FragmentZlecenia() {
        // Required empty public constructor
    }
 
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
    }
 
    public void onSortByTime() {
        L.t(getActivity(), "Sort by time");
        mSorter.sortZleceniaByTime(listZlecenias);
        adapterZlecenia.notifyDataSetChanged();
    }
 
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment
 
        View layout = inflater.inflate(R.layout.fragment_zlecenia, container, false);
 
        mSwipeRefreshLayout = (SwipeRefreshLayout) layout.findViewById(R.id.swipeZlecenia);
        mSwipeRefreshLayout.setOnRefreshListener(this);
 
 
        zleceniaArrived = (RecyclerView) layout.findViewById(R.id.listZlecenia);
        zleceniaArrived.setLayoutManager(new LinearLayoutManager(getActivity()));
 
        adapterZlecenia = new AdapterZlecenia(getActivity());
        zleceniaArrived.setAdapter(adapterZlecenia);
 
        if (savedInstanceState != null) {
            //if this fragment starts after a rotation or configuration change, load the existing zlecenias from DB
            listZlecenias = MyApplication.getWritableDatabase().getAllZlecenia();
        } else {
            //if this fragment starts for the first time, load the list of zlecenias from a database
            MyApplication.getWritableDatabase().deleteAll();
            //if the database is empty, trigger an AsycnTask to download zlecenias list from the web
            if (listZlecenias.isEmpty()) {
                new TaskLoadZlecenia(this).execute();
            }
        }
        //update your Adapter to containg the retrieved zlecenias
        adapterZlecenia.setListZlecenia(listZlecenias);
 
        return layout;
    }
 
 
    @Override
    public void onZleceniaLoaded(ArrayList<Zlecenia> listZlecenias) {
 
        L.m("onZleceniaLoaded Fragment");
 
        new TaskLoadZlecenia(this).execute();
        adapterZlecenia.setListZlecenia(listZlecenias);
    }
 
 
    @Override
    public void onRefresh() {
        L.t(getActivity(), "onRefresh");
        new TaskLoadZlecenia(this).execute();
 
    }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2015, 16:50
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Организовать что бы AsyncTask запускался в фрагменте раз в определененное время (Программирование Android):

Вывод во втором фрагменте длины текста, введённого в первом фрагменте активити
Создать активити с двумя фрагментами. В первый фрагмент должен содержать поле...

Как организовать поиск, чтобы он запускался только после нажатия определённой кнопки?
Привет всем! Помогите советом! Как организовать поиск, чтобы он запускался...

Как сделать, чтобы ConsoleApplication сам запускался раз в 5 минут?
У меня есть ConsoleApplication Как сделать так что бы программа после...

Как сделать так, чтобы bat-файл запускался только один раз?
Как сделать, чтобы программа(bat файл) запускалась только один раз при...

Patriot Memory 60GB запускался всего 6 раз, не забит, скорость rw как на старом HDD
Диск запускался всего 6 раз, не забит. Скорость rw как на старом HDD, как...

Возможно ли сделать так, чтобы скрипт проверял время и запускался в нужный момент?
Здравствуйте. Есть небольшой скрипт на VBS. Как можно сделать что бы скрипт...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2015, 16:50
Привет! Вот еще темы с решениями:

Сколько раз повторится тело цикла в приведенном фрагменте?
Сколько раз выполнится тело цикла во фрагменте алгоритма: q:=27; p:=36; нц...

Сколько раз выполняется цикл в данном фрагменте программы?
Сколько раз выполняется цикл в данном фрагменте программы? f=1. ...

Сколько раз выполнится тело цикла во фрагменте алгоритма?
Сколько раз выполнится тело цикла во фрагменте алгоритма? в:=да; x:=64; нц...

Сколько раз выполнится тело цикла во фрагменте алгоритма:
Сколько раз выполнится тело цикла во фрагменте алгоритма: в:=нет; x:= 4; нц...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru