我有一个拨打电话的方法。数字和延迟来自两个编辑文本框中的字符串。它工作正常。但是,我想把它放在一个循环中,以便它在结束前多次执行相同的操作。
我的代码是 -
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();
}
答案 0 :(得分:0)
非常简单,您可以使用Thread
班级,TimerTask
班级或AlarmManager
班级。 Thread和TimerTask类中将需要休眠时间。
答案 1 :(得分: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++;
}
....
}
答案 2 :(得分:0)
简单。我认为。 好。让我们说你希望它重复10次。 并且您的方法称为“method()”
//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
}
简而言之,这将创建名为method()的方法。
然后它将创建一个名为count的int,其值为1.
然后它将执行您的方法并将“1”添加到“count”
所以“count”现在的值为2。
当计数仍然低于10时,它将再次执行该方法..
再次......再次计数= 10
然后它会停止。
将方法()重命名为您喜欢的任何内容,并添加您想要做的事情。