【问题标题】:SMS scheduling with Timer in Android在 Android 中使用 Timer 进行短信调度
【发布时间】:2012-04-19 02:55:49
【问题描述】:

我是 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();
                }
            });

        }
    });
}

【问题讨论】:

    标签: java android timer schedule


    【解决方案1】:
     mytimer.schedule(mytask, 1000L, 3000L); 
    

    也就是说,第一次执行前的延迟为 1 秒,后续执行之间的时间为 3 秒。

    如果你想增加延迟使用, mytimer.schedule(mytask, 60000L, 180000L); // (1min, 3min)

    【讨论】:

    • -.- 我们从中了解到:大学毕业后编程不会很成功 ;-) 非常感谢,这很有帮助!
    【解决方案2】:

    你需要使用这个方法

    public void schedule (TimerTask task, Date when)
    

    第二个参数定义了发送消息的日期,我认为这是你代码中调用的错误方法。

    【讨论】:

    • 感谢您的快速回答,但这并不能解决我的问题...我认为我的错误一定是别的,因为在我看来,我使用 public void schedule (TimerTask task, Date when)public void schedule (TimerTask task, long delay, long period) 因为效果一样...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-01
    相关资源
    最近更新 更多