2012-05-19 18 views
-2

我有一個打電話的方法。數字和延遲來自兩個編輯文本框中的字符串。它工作正常。但是,我想把它放在一個循環中,以便它在結束之前多次執行相同的操作。如何使用重複方法?

我的代碼 -

public void makeCall(View view) { 

      //create handler for phone call 

     Handler delayedCallHandler = new Handler() { 
       public void handleMessage(Message msg) { 
       String num = (String) msg.obj; 

       Intent intent = new Intent(Intent.ACTION_CALL); 
       intent.setData(Uri.parse(num)); 
       startActivity(intent); 
       } 
      }; 


      //Grabs milli seconds count from edit text box 

       EditText edit_seconds = (EditText) 
        findViewById(R.id.seconds); 
       CharSequence edit_seconds_value = 
        edit_seconds.getText(); 

       int secondz = Integer.parseInt(edit_seconds_value.toString());      

      // Grabs TXT Char from MSISDN edit text box and converts to edit_text_value 
      EditText edit_text = (EditText) 
        findViewById(R.id.msisdn); 
       CharSequence edit_text_value = 
        edit_text.getText(); 

      //Delay phone call 

      delayedCallHandler.sendMessageDelayed(
        delayedCallHandler.obtainMessage(0, "tel:" + edit_text_value), // msg.obj = the number to call 
        secondz); // 50 seconds 

      // Toast Popup when call set button pressed 

      Toast toast=Toast.makeText(this, "You have now set the call for " + edit_seconds_value + "milliseconds" , Toast.LENGTH_LONG); 
      toast.show(); 

    }   
+1

哪個是函數? 問題不太清楚。 – Raheel

+0

@Raheel我想方法重複5次之間有5分鐘的延遲。 – Parksie

+0

什麼是所有的反對票?有點苛刻,我認爲 – Parksie

回答

0

您可以使用startactivityForResult()啓動CALL活動。然後在OnActivtyResult發送一個延遲的消息開始下一個CALL。

@Override 
void onActivityResult(...) { 
    .... 
    if (count <= NUMBER_OF_CALLS) { 
     delayedCallHandler.sendMessageDelayed(
        delayedCallHandler.obtainMessage(0, "tel:" + edit_text_value), // msg.obj = the number to call 
        secondz); // 50 seconds 
     count++; 
    } 
    .... 
} 
0

很簡單,你可以使用Thread類,TimerTask類或AlarmManager類吧。在Thread和TimerTask Class中將需要休眠時間。

+0

感謝您的迴應。你有可能提供代碼示例嗎?我是新來的android/java。謝謝 – Parksie

+0

當然,你可以訪問www.java2.com。 – Lucifer

+0

是的,謝謝.... – Parksie

0

簡單。我認爲。 好的。可以說你想讓它重複10次。 並且您的方法稱爲「方法()」

//BEFORE YOUR ONCREATE 
int count = 1; 
//PUT THIS WHEREVER YOU WANT TO CALL YOUR METHOD 
while(count<=10){ 
    method(); 
    count++; 
} 

然後設置在此之後你的方法()(在OnCreate中以外)

private void method() { 
    //DO ALL YOUR STUFF HERE 

} 

總之,這將創建一個名爲方法,該方法()。

然後,它會創建一個名爲計數int型的1

值然後,它會做你的方法,並添加1〜「算」

因此,「數」將現在的2的值。

由於數仍在10,它將再次做方法..

又一次......又一次,直到數= 10

時就停止。

將方法()重命名爲任何你喜歡的東西並添加到你想要做的事情中。