2013-03-04 2 views
0
image.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View arg0, MotionEvent arg1) { 
       String serverResponse = ""; 
       JSONObject responseToJSON = null; 
        try { 
         //if we have Internet connection 
         if(NetworkRequest.hasNetworkConnection(MyActivity.this)){ 
          //download the server response 
          serverResponse = NetworkRequest.getUrlData(array.get(i)); 
          responseToJSON = new JSONObject(serverResponse); 
          String individualDescription = responseToJSON.getString("Description");     
         } 

        } catch (Exception e) { 
         e.printStackTrace(); 
        } 

       return false; 
      } 
    }); 

У меня есть вышеупомянутый код. Где я установил OnClickListener на изображении. Поэтому, когда я нажимаю на изображение, я переопределяю метод onTouch. Затем я проверяю, есть ли у меня подключение к Интернету. Если я попытаюсь загрузить контент из Интернета. То, что я хочу сделать, это иметь что-то в качестве таймера и проверить, если следующая строка кодаОтмена OnTouchListener в истекшее время

NetworkRequest.getUrlData(array.get(i)) 

нуждается более 2 секунд, чтобы загрузить содержимое. Если вам требуется больше 2 секунд для загрузки содержимого, я хочу отменить загрузку и OnTouchListener. Это возможно? Есть идеи?

+0

Следует иметь в виду, что этот фрагмент кода должен предоставить вам «NetworkOnMainThreadException». – nhaarman

+0

Время загрузки является приблизительным значением и не может быть точно рассчитано. У вас уже есть код для расчета того, сколько времени займет загрузка? – m0skit0

+0

@ m0skit0 Нет У меня его нет. Честно говоря, я не знаю, как делать то, что я хочу. Мне просто нужно предложение –

ответ

-1

Проверьте это link. Присвойте переменной системное время, затем проверьте, на этот раз больше, чем последний + 2000, и здесь вы идете :-).

Cheers

+0

Вы не ответили на вопрос. Как отменить загрузку? А слушатель? Это возможно? – m0skit0

+0

Я не вижу, как вы можете это сделать с этой реализацией. Я думаю, что вы должны использовать контрольный процесс, который будет выполняться через две секунды, потому что, как только вы начнете загрузку, вам понадобится процесс с потоком, чтобы узнать, занимает ли он больше 2 секунд. – g00dy

Смежные вопросы