如何在android中使用定时发送短信
我用下面的代码从安卓系统发送消息,但我的问题是什么时候在编辑文本上键入一些消息停止在编辑文本上键入开始计时30秒后自动向其他人发送消息如何做到这一点帮助我如何获得时间给出想法如何在android中使用定时发送短信,android,android-layout,android-activity,Android,Android Layout,Android Activity,我用下面的代码从安卓系统发送消息,但我的问题是什么时候在编辑文本上键入一些消息停止在编辑文本上键入开始计时30秒后自动向其他人发送消息如何做到这一点帮助我如何获得时间给出想法 public void onClick(View v) { Intent intent = getIntent(); String phone = intent.getStringExtra("pho");
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();
}
}
});
不要使用java计时器,使用处理程序(计时器有自己的线程,不能与UI元素一起运行)。每个视图都有一个用于延迟操作的处理程序调用:
View v=..... (or inherided call)
v.postDelayed(new Runnable() {
public void run() {
// your code
}
}, 30*1000);
30秒后禁用Edittext,并获取edittxt中的任何文本并发送。如果要停止键入??如果我在30秒前键入以重新启动方法,则不需要新的处理程序,每个视图都有一个处理程序。
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);