Форум программистов, компьютерный форум CyberForum.ru

Групповые сетевые запросы с задержкой - Android

Восстановить пароль Регистрация
 
Delphian
0 / 0 / 0
Регистрация: 14.08.2012
Сообщений: 90
31.10.2016, 15:20     Групповые сетевые запросы с задержкой #1
Всем добрый день.

У меня есть три группы объектов находящиеся в одной Realm базе. Каждая из этих групп представляет набор тагов и другой информации, по каждому тагу я должен сделать запрос в сеть, чтобы получить id. Запрос в сеть для каждой группы объектов свой (меняется урл и ответ). Также необходимо делать запросы параллельно для каждой группы и нужно чтобы было не более 20 запросов в минуту. Программа должна работать, даже если её уже закрыли. Я пока сделал макет IntentServie но как быть дальше не знаю. Как корректно делать параллельные запросы, да ещё и с задержкой. Возможно ли вообще это сделать через IntentService корректно? Цикл "For" показал условно, чтобы лучше понять задачу. Также все ответы нужно писать в единую базу, то есть доступ должен быть у всех потоков к одной базе.

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
public class SubscribersGathering extends IntentService {
 
    private RealmResults<HashtagObject> hashtags;
    private RealmResults<SearchtagObject> searchtags;
    private RealmResults<NametagObject> nametags;
 
    public SubscribersGathering() {
        super("SubscribersGathering");
    }
 
    @Override
    protected void onHandleIntent(Intent intent) {
        Realm realmForThisThread = Realm.getDefaultInstance();
        this.hashtags = realmForThisThread.where(HashtagObject.class).findAll();
        this.searchtags = realmForThisThread.where(SearchtagObject.class).findAll();
        this.nametags = realmForThisThread.where(NametagObject.class).findAll();
        realmForThisThread.close();
        
        for(int i=0;i<hashtags.size();i++){
            getHashtagTag(hashtags.get(i).getHashtag());
        }
        for(int i=0;i< searchtags.size();i++){ 
            getSearchTags(searchtags.get(i).getId());
        }
       etc     
    }
 
    private void getHashtagTag(final String tagName){
 
                HttpURLConnection urlConnection = null;
                try {
                    URL url = new URL(“URL_1”);
                    urlConnection = (HttpURLConnection) url
                            .openConnection();
                    urlConnection.setRequestMethod("GET");
                    urlConnection.setDoInput(true);
                    urlConnection.connect();
                    String response = Tools.streamToString(urlConnection
                            .getInputStream());
                    JSONObject jsonObj = (JSONObject) new JSONTokener(response)
                            .nextValue();
                    Log.d(tagName,response);
                    for(int i=0;i<jsonObj.getJSONArray("data").length();i++) {
                        JSONObject json = (JSONObject) jsonObj.getJSONArray("data").get(i);
                        Log.d(tagName, json.getJSONObject("user").getString("id"));
                    }
                }catch(Exception exc){
                    exc.printStackTrace();
                }finally {
                    if(urlConnection!=null){
                        try{
                            urlConnection.disconnect();
                        }catch(Exception e){
                            e.printStackTrace();
                        }
                    }
                }
    }
 
    private void getSearchTags (final String tagName){
 
    }
 
    etc
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2016, 15:20     Групповые сетевые запросы с задержкой
Посмотрите здесь:

get запросы Android
GET/POST Запросы на страницу php Android
Замена цвета background с задержкой для ячейки ListView Android
Android Обработка Javascript, post get запросы
Намерение от action ".BATTERY_LOW" приходит с задержкой Android
Куда логируются сетевые события: звонки, SMS, MMS, GPRS? Android
Volley делает повторные запросы Android
Android OPTIONS запросы в Retrofit

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2669 / 1680 / 158
Регистрация: 13.01.2012
Сообщений: 6,281
03.11.2016, 08:52     Групповые сетевые запросы с задержкой #2
Delphian, некая сущность желает в произвольный момент времени чтото запросить - пусть она поднимет сервис передав ему нужные для запроса данные, а сервис именно под этот запрос создаст отдельный поток со своими сокетами
Delphian
0 / 0 / 0
Регистрация: 14.08.2012
Сообщений: 90
10.11.2016, 14:45  [ТС]     Групповые сетевые запросы с задержкой #3
vxg, собственно почти так и сделал, как Вы сказали, и как Выше код описан, использовал IntentService и в нём отправлял все нужные запросы, можно ещё ExecutorService добавить при необходимости
Yandex
Объявления
10.11.2016, 14:45     Групповые сетевые запросы с задержкой
Ответ Создать тему
Опции темы

Текущее время: 08:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru