1

私はAndroidとJavaが初めてで、Androidのタイマーで少し遊んでいます。私の目的は、SMS の送信をスケジュールすることです。そのため、タイマーを使用して、SMS を送信する時間を遅らせます。すべてが正常に動作し、エラーなどはありませんが、私の問題は、Androidでアプリを実行するときにタイマーがSMSの送信を待機しないため、「送信」ボタンを押した直後に送信され、待機せずに処理されることです(無限ループに似たもの)。誰かが助けてくれることを願っています:

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

        }
    });
}
4

2 に答える 2

2
 mytimer.schedule(mytask, 1000L, 3000L); 

つまり、最初の実行までの遅延は1秒で、後続の実行間の時間は3秒です。

遅延の使用を増やしたい場合は、mytimer.schedule(mytask、60000L、180000L); //(1分、3分)

于 2012-04-18T18:55:49.597 に答える
0

この方法を使用する必要があります

public void schedule (TimerTask task, Date when)

2 番目のパラメーターは、メッセージを送信する日付を定義します。コードで呼び出されたメソッドが間違っていると思います。

于 2012-04-18T16:52:24.237 に答える