Calendear를 서비스에서 구현하였습니다.
package cb.application;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.TimeZone;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.util.Log;
public class CbService extends Service implements OnInitListener {
private static TextToSpeech tts;
GregorianCalendar calender;
TimeZone tZone;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
calender = new GregorianCalendar(Locale.KOREA);
tZone = TimeZone.getTimeZone("KOREA");
calender.setTimeZone(tZone);
tts = new TextToSpeech(this, ttsListener);
Log.d("key", Integer.toString(calender.get(Calendar.HOUR_OF_DAY)));
Log.d("key", Integer.toString(calender.get(Calendar.MINUTE)));
}
public void onStart(Intent intent, int startId)
{
super.onStart(intent, startId);
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
public TextToSpeech.OnInitListener ttsListener = new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
// TODO Auto-generated method stub
int hour = calender.get(Calendar.HOUR_OF_DAY);
int minute = calender.get(Calendar.MINUTE);
if(hour == 10 && minute == 24)
{
tts.setLanguage(Locale.KOREA);
String msg = "충북일꾼 어플리케이션이 시작되었습니다.";
tts.speak(msg, TextToSpeech.QUEUE_ADD, null);
}
}
};
@Override
public void onInit(int status) {
// TODO Auto-generated method stub
}
}




Service의 onCreate도 Activity와 마찬가지로 최초에 한번 실행됩니다.
서비스가 있다고 알아서 죽이고 살리고를 반복하지 않습니다.
Timer 등을 이용해서 일정 주기로 갱신을 해 주셔야 합니다.
하지만 별로 선호하고 싶은 방법은 아니네요.