2014-12-03 46 views
0

发送短信发送消息我使用下面的代码发送消息,但我的问题是当输入一些消息时编辑文本停止输入编辑文本开始计时后30秒自动发送消息给他人如何要做到这一点帮助我如何让时间给定主意如何使用android

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

制作30秒后您的EDITTEXT禁用和得到什么都文本edittxt并发送。 – 2014-12-03 09:46:33

+0

当你想停止打字? – 2014-12-03 09:51:40

+0

当我在30秒之前键入重新启动方法 – Jai 2014-12-03 10:51:28

回答

1

不要使用Java的定时器,使用处理程序(定时器有一个自己的线程将不能与UI元素进行操作)。每个视图都有一个处理程序调用的延迟操作:

View v=..... (or inherided call) 
v.postDelayed(new Runnable() { 
    public void run() { 
     // your code 
    } 
}, 30*1000); 
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); 
+0

有没有需要一个新的处理程序,每个视图都有一个。 – brummfondel 2014-12-03 10:48:16

+0

其工作...... – Jai 2014-12-03 11:34:24