如何在android中使用计时发送短信

时间:2014-12-03 09:45:07

标签: android android-layout android-activity

我通过使用下面的代码从android发送消息,但我的问题是当在编辑文本上键入一些消息时,在编辑文本上停止输入30秒后开始计时自动向其他人发送消息如何做到这一点帮助我如何获得时间提出想法

public void onClick(View v) {

                    Intent intent = getIntent();
                    String phone = intent.getStringExtra("pho");
                    String fullmsg = sendText.getText().toString();
                    Log.d("messga body full test", "" + fullmsg);

                    try {
                        SmsManager smsManager = SmsManager.getDefault();
                        smsManager.sendTextMessage(phone, null, fullmsg,
                                null, null);
                        ContentValues values = new ContentValues();
                        values.put("address", phone);
                        values.put("body", fullmsg);
                        getContentResolver().insert(
                                Uri.parse("content://sms/sent"), values);
                        Toast.makeText(getApplicationContext(),
                                "SMS sent.", Toast.LENGTH_LONG).show();
                    } catch (Exception e) {
                        Toast.makeText(getApplicationContext(),
                                "SMS faild, please try again.",
                                Toast.LENGTH_LONG).show();
                        e.printStackTrace();
                    }
                }
            });

2 个答案:

答案 0 :(得分:1)

不要使用java Timers,使用Handlers(Timer有自己的线程,一定不能用UI元素操作)。每个View都有一个延迟操作的处理程序调用:

View v=..... (or inherided call)
v.postDelayed(new Runnable() {
    public void run() {
      // your code
    }
}, 30*1000);

答案 1 :(得分:1)

new Handler().postDelayed(new Runnable(){

    @Override
    public void run() {
        String number = "";
        String message_text = "";

        SmsManager smsManager = SmsManager.getDefault();
        smsManager.sendTextMessage(number, null, message_text, null, null);         
    }

}, 30000);