2015-09-02 259 views
0

我們知道下面的代碼是隨機數隨機數發生器自動隨機

Random generator = new Random(); 
number = generator.nextInt(VALUE) + 1; 

我可以把這個代碼隨機生成,如果點擊該按鈕

button1 = (Button)findViewById(R.id.buttonblack); 
if(v==button1) { 

// Here, we are generating a random number 
Random generator = new Random(); 
number = generator.nextInt(5) + 1; 
// The '5' is the number of values 

// Here, we are checking to see what the output of the random was 
switch(number) { 

    case 1: if(bla.. bla.. bla.. == 1){ 
      //Do some blaa. blaa. blaa. logic 
     } 
     else if(bla.. bla.. bla.. == 2){ 
      //Do some blaa. blaa. blaa. logic 
     } 
     break; 
     //and so on.. 

我的問題是如何使隨機生成方法自動爲隨機每隔2秒,然後速度越來越快,而不是通過點擊按鈕

以及如何,如果一些按鈕點擊隨機停止,例如

buttonstop = (Button)findViewById(R.id.buttonstop);  
buttonstop.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v){ 

      //Stop Random generator 

     } 
    }); 

任何人都可以回答?感謝的

+1

做出環或做它在一個線程有這麼多的方法來實現這一 –

+0

...使用定時器?一個無限循環(在某些情況下有一個退出點)? –

+3

基本上,你的問題根本不在於隨機數的產生。你可以從這個問題中徹底解決這個問題。你的問題是如何以定時的方式在用戶界面上進行表示。谷歌爲它。 –

回答

1

使用它從2秒後開始以更快的20毫秒

private Handler mHandler = new Handler(); 
    int ms=2000; //2secs. 
    Define a Runnable: 

    private Runnable mUpdateTimeTask = new Runnable() { 
     public void run() { 
      // get random number here 

     // You could do this call if you wanted it to be periodic: 

    ms=ms-20; //20ms faster 
      mHandler.postDelayed(this, ms); 

      } 
     }; 

    mHandler.postDelayed(mUpdateTimeTask, 100); 
+0

不要忘了在onPause或onStop活動的方法中調用mHandler.removeCallbacks(mUpdateTimeTask) –

+0

,因爲@llya也說停止處理程序,如果你想,因爲這是一個常識 – Androider

+0

確定我知道了,謝謝 – RichFounders