Остановка цикла for на определенное время и настройка изображений в Glide

Я генерирую запрос залпа, который выбирает изображения с сервера и отображается в Glide. Я использую цикл для анализа ответа и отображения изображений в Glide. Я хочу, чтобы изображение отображалось один раз, и через 5/10 секунд я хочу изменить его на индекс. Проблема, с которой я сталкиваюсь, заключается в том, что когда цикл for начинает отображать изображение, которое находится в последнем индексе. мю код:

StringRequest fetchingAddsForMainScreen= new StringRequest(URL, new Response.Listener<String>() {


        @Override
        public void onResponse(String response) {
            int counter=0;
            try {
                JSONObject object= new JSONObject(response);
                JSONArray jsonArray=object.getJSONArray("slots");
                for (int i=0;i<jsonArray.length();i++)
                {
                    JSONObject jsonObject=jsonArray.getJSONObject(i);
                    String packageFullName=jsonObject.getString("adurl");
                    System.out.println("Package Full Name is:"+packageFullName);
                    String packageName = packageFullName.substring(packageFullName.indexOf("?")+3, packageFullName.length() );
                    System.out.println("Package Name is:"+packageName);
Glide.with(getApplicationContext()).load(jsonObject.getString("imgurl")).into(iVAddOne);
counter++;
if (counter==1)
                            {
                                Toast.makeText(MainActivity.this, "one Time counter", Toast.LENGTH_SHORT).show();
                                //break;
                            }
                            else if (counter==2)
                            {
                                Toast.makeText(MainActivity.this, "Two Time counter", Toast.LENGTH_SHORT).show();
                            }
                            else
                            {
                                Toast.makeText(MainActivity.this, "many Time counter", Toast.LENGTH_SHORT).show();
                            }

Как я могу остановить цикл на 10 секунд и вставить изображение в слайд для следующего индекса.

2 ответа

Может быть, это поможет.

int CODE_PAUSE_TIME = 3000; //IN MILLISEC
for(int i = 0; i<10; i++){
            //Write your code here before there is a pause
      try{
        Thread.sleep(CODE_PAUSE_TIME);
      }catch(Exception e){
         //write your code here after there is a pause.
      }

        }

Я надеюсь, это поможет вам.

Простой способ - запустить цикл for в параллельном потоке и вызвать sleep(5000) в конце каждой итерации.

Более сложное решение, которое более элегантно и лучше подходит для Android, заключается в использовании AlarmManager, чтобы вы могли установить повторяющуюся задачу, которая будет изменять изображение каждые 5 секунд.

Другие вопросы по тегам