我是Android和Java的新手,我在Android中使用Timer玩了一下。我的目的是安排发送短信。因此,我使用计时器来延迟发送短信的时间。一切正常,没有错误等,但我的问题是,当我在Android上执行我的应用程序时,计时器不会等待发送短信,所以它是按下“发送”按钮后直接发送然后处理而无需等待(类似于无限循环的东西)。希望有人可以提供帮助:
public class SendMessageActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Button button = (Button) findViewById(R.id.send);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
button.setText("Hallo");
final Timer mytimer = new Timer(true);
final TimerTask mytask = new TimerTask() {
public void run() {
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phone, "", "Hi Droide!",
null, null);
}
};
mytimer.schedule(mytask, 1000L, 3000L);
final Button button = (Button) findViewById(R.id.send);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mytimer.cancel();
}
});
}
});
}
答案 0 :(得分:2)
mytimer.schedule(mytask, 1000L, 3000L);
这意味着,第一次执行前的延迟是1秒,后续执行之间的时间是3秒。
如果你想增加延迟使用, mytimer.schedule(mytask,60000L,180000L); //(1分钟,3分钟)
答案 1 :(得分:0)
您需要使用此方法
public void schedule (TimerTask task, Date when)
第二个参数定义了发送消息的日期,我认为这是你代码中调用的错误方法。