2012. 5. 26. 12:41
안드로이드 - 타이머 2 안드로이드 이야기2012. 5. 26. 12:41
728x90
반응형
안드로이드 타이머 적용 방법
간단한 예를 들자면, 알람 소리를 일정시간 지난후 자동으로 종료하게 만드는 경우 필요한 기능이죠^^
아래 코드를 참고하시면 손쉽게 구현 및 응용이 가능하시리라 믿어 의심치 않습니다.
public class SmsProcess extends Service {
static final String TAG = "ANDROES";
final Handler mHandler = new Handler();
boolean stopTask = true;
private static final int TIMER_PERIOD = 1 * 1000; // 1 sec
private static final int MAXCOUNT = 10;
private int mCounter;
public void onStart(Intent intent, int startId) {
processAlarm();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
processAlarm();
return START_NOT_STICKY;
}
private void processAlarm() {
// TODO Auto-generated method stub
// Set volume
mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);
int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM);
// mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT); // 무음
// mAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); // 진동
mAudioManager.setStreamVolume(AudioManager.STREAM_ALARM, maxVolume, 0);
for(int i=1; i<=maxVolume; i++){
mAudioManager.adjustStreamVolume(AudioManager.STREAM_RING, AudioManager.ADJUST_RAISE, 0);
}
// 벨소리 울리게 하기
RingtoneManager ringtoneManager = new RingtoneManager(this);
alarmRingtone = ringtoneManager.getRingtone(this, RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM));
alarmRingtone.play();
stopTask = false;
startTimer();
// Service Stop
this.stopSelf();
}
private void startTimer() {
// TODO Auto-generated method stub
Logger.i("ANDROES", "start startAlarm() : mCounter: " + mCounter);
final Runnable r = new Runnable() {
@Override
public void run() {
// 주기적으로 반복될 내용
if (++mCounter >= MAXCOUNT) {
stopTimer();
alarmRingtone.stop();
}
Logger.i("ANDROES", "mCounter : " + mCounter);
if (!stopTask) mHandler.postDelayed(this, TIMER_PERIOD);
}
};
if (!stopTask) mHandler.postDelayed(r, TIMER_PERIOD);
}
private void stopTimer() {
// TODO Auto-generated method stub
Logger.i("ANDROES", "start stopAlarm() : mCounter: " + mCounter);
stopTask = true;
}
}
원본출처:http://www.androes.com/139
728x90
반응형
'안드로이드 이야기' 카테고리의 다른 글
안드로이드 - 캘린더를 이용해 날짜 더하기 (0) | 2012.05.30 |
---|---|
안드로이드 - 타이머 만들기 3 (0) | 2012.05.26 |
안드로이드 - 파일 입출력 경로 (0) | 2012.05.24 |
안드로이드 - 리니어레이아웃 이해하기 (0) | 2012.05.19 |
안드로이드 - 타이머 구현 (0) | 2012.05.14 |