Android 安卓:使用定时器定期发送短信,但SMSes会';不停吗?

Android 安卓:使用定时器定期发送短信,但SMSes会';不停吗?,android,timer,sms,intervals,repeat,Android,Timer,Sms,Intervals,Repeat,我想定期重复发送短信,处理程序和其他程序可以按照谷歌告诉我的那样使用,但我认为倒计时功能要简单得多。 我将计时器放在一个函数中,并在CountDownTimer的onFinish()函数中调用该函数 问题是,即使按下了“后退”按钮,或我试图通过单击按钮并完成活动(this.finish())来结束它,SMSE仍在不断发送,但没有任何用处 如果我能通过按一个自定义的按钮,找到停止计时器的方法,我的目的就可以实现了 将timer.cancel()放在onClickListener中是强制关闭应用程序

我想定期重复发送短信,
处理程序
和其他程序可以按照谷歌告诉我的那样使用,但我认为
倒计时
功能要简单得多。 我将计时器放在一个函数中,并在
CountDownTime
r的
onFinish()函数中调用该函数

问题是,即使按下了“后退”按钮,或我试图通过单击按钮并完成活动(this.finish())来结束它,SMSE仍在不断发送,但没有任何用处

如果我能通过按一个自定义的
按钮
,找到停止计时器的方法,我的目的就可以实现了

timer.cancel()
放在
onClickListene
r中是强制关闭应用程序,而不是停止计时器

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mTextField = (TextView)findViewById(R.id.mTextField);
    endbutton = (Button)findViewById(R.id.end);
    timerFunc();



}

public void timerFunc()
{
  new CountDownTimer(10000,1000) {

    public void onTick(long millisUntilFinished) {
        mTextField.setText("Next Msg in " + millisUntilFinished/1000);
    }

    public void onFinish() {
     //   mTextField.setText("Done!");
     //   String finalMsg = "Hii at" + System.currentTimeMillis();
      //  sendMsgFunc(finalNumber, finalMsg);

        Toast.makeText(getApplicationContext(), "Message Sent",
                Toast.LENGTH_LONG).show();
        timerFunc();
    }


 }.start();



 end.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) 
    {
        // WHAT SHOULD I DO HERE SO THAT I CAN END THIS CURRENT SESSION    
                       OF  COUNTDOWN. i.e Stop Sending messages at that interval?

    }
});

}    

}
如果我想用按钮结束它?代码应该是什么

endbutton.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) 
    {
        cdt.canel();
    }

你需要取消倒计时

public final void cancel ()

Added in API level 1
Cancel the countdown. 
有一个实例变量
CountDownTiemr cdt

然后

然后
cdt.cancel()

onFinish()
中还有
timerFunc()
。假设倒计时结束,则再次启动计时器。这就是你想要的吗


Handler
是一个更好的选择。

endbutton.setOnClickListener
似乎在onCreate之外如果cdt.cancel()放在endbutton中,应用程序强制关闭,如果单独声明了cancel函数,该函数中应该包含什么?@user3557410发布堆栈跟踪
cdt = new CountDownTimer(10000,1000) {...