2015-05-11 2 views
0

Я хочу показать цифры от 1 до 100 в порядке продолжения в TextView и подождать 1 секунду после печати каждого номера. Я также хочу реализовать его с помощью служб Android. Я не знаю разницы между UIHandler и Handler. Когда я говорю об этой проблеме, все, что я получаю, - это разница между обработчиком и потоком.
Пожалуйста, помогите мне это, Спасибо заранееВ чем разница между UIHandler и обработчиком

private static final int SHOW_MESSAGE = 1; 
private static final int m_cdelay = 1000; 
private UIHandler m_cUIHandler; 
public int m_cI= 0; 
TextView m_cTextShow; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    m_cTextShow = (TextView) findViewById(R.id.textview1); 
    for(m_cI=1; m_cI <= 100; m_cI++){ 
     //m_cUIHandler = new UIHandler(); 
     //m_cUIHandler.sendEmptyMessageDelayed(SHOW_MESSAGE, 1000); 
     showMessage(m_cI); 
    } 
} 

private void showMessage(int m_cI2) { 
    for(m_cI=1; m_cI <= 100; m_cI++){ 
     m_cTextShow.setText(""+m_cI); 
     new Thread(new Runnable() { 
       @Override 
       public void run() { 
        // TODO Auto-generated method stub 
        try { 
         Thread.sleep(m_cdelay); 
        } catch (InterruptedException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 
       }}).start(); 
    } 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    startService(new Intent(this, NumberService.class)); 
} 

public final class UIHandler extends Handler { 
    @Override 
    public void handleMessage(Message pObjMessage) { 
     switch(pObjMessage.what) { 
      case SHOW_MESSAGE: 
       m_cTextShow.setText(""+m_cI); 
       break; 
     } 
    } 
} 
+1

где твоя проблема? как говорится в вашем вопросе, вы строите класс под названием «UIHandler», а затем вы спрашиваете нас, в чем разница. На самом деле нет никакой разницы между UIHandler и Handler. UIHandler обрабатывает действия в пользовательском интерфейсе, который обработчик делает то же самое в любом месте. –

+0

На самом деле я новичок в android, и, поскольку теперь я знаю разницу между ними, и я также хотел бы знать, есть ли какая-либо альтернатива по потоку в моем коде, поскольку она не делает задержку в 1 секунду. –

+0

уверен, не используйте Thread, просто используйте Handler.postDelayed() – pskink

ответ

0

Вы можете фактически переписать код, как, что, чтобы сделать это, вероятно, работать.
Pls проверит его и ответит.

public void showMessage(int number){ 
    runOnUiThread(new Runnable(){ 
     public void run() { 
      //Write your number onto the screen 
     } 
    }); 
} 

protected void onCreate(Bundle savedInstanceState) { 
    //Blablabla... 
    for(m_cI=1; m_cI <= 100; m_cI++){ 
     //m_cUIHandler = new UIHandler(); 
     //m_cUIHandler.sendEmptyMessageDelayed(SHOW_MESSAGE, 1000); 
     showMessage(m_cI); 
     Thread.sleep(1000); 
    } 
} 
+0

Thankyou so @B. Кеммера. –

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