0
나는이 버튼을 클릭 (보내기) 할 때 특정 시간에 메시지를 보낼 수있는 Android 용 코드를 작성 중입니다. 이렇게하려면 TimerTask를 구현하는 클래스를 만들어 코드가 지정되면 실행되도록합니다. 이것은 5 분에서 1 시간과 같이 짧은 간격으로 작동하지만 한 시간 후에 실행되도록 코드를 설정하면 실행되지 않습니다. 나는 잘못된 코딩이나 공통적 인 문제인지 확실하지 않지만 이것에 대한 해결책이 있는지 알고 싶습니다.Java의 TimerTask는 짧은 시간 동안 만 작동합니까?
관련 코드 : 안드로이드에
send = (Button) findViewById(R.id.send);
send.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(isEmpty(message)){
Toast.makeText(getBaseContext(), "please enter a message", Toast.LENGTH_LONG).show();
}
else{
sendMessageAt();
}
}
});
public void sendMessageAt(){
DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date;
try {
date = dateFormatter.parse(getDateTime());
Timer timer = new Timer();
TimerTask executeCode = new Execute();
timer.schedule(executeCode,date);
Toast.makeText(getBaseContext(), "Your message will be sent at: "+getDateTime(), Toast.LENGTH_LONG).show();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public class Execute extends TimerTask{
@Override
public void run() {
// TODO Auto-generated method stub
String phoneNm="2017257831";
message = (EditText) findViewById(R.id.message);
String mesToStr = message.getText().toString();
sendSMS(phoneNm,mesToStr);
}
}
private void sendSMS(String phoneNm,String message){
PendingIntent pi = PendingIntent.getActivity(this, 0,
new Intent(this, MainActivity.class),0);
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNm,null,message,pi,null);
}