안녕하세요.
타이머가 작동할 때, 서비스를 호출하려고 합니다.
타이머는 CounterDown라는 클래스로 구현하였습니다.
원래 mainactivity 에서는 startservice 메소드를 사용한 서비스시작이 잘 되었습니다만,
타이머 작동시 가능하게 하려고, 타이머 클래스내에서 startservice메소드가 에러가 나는데 이유를 모르겠습니다. ㅠㅠ
소스 첨부합니다..
1. CounterDown.java
public class CounterDown extends CountDownTimer{
public CounterDown(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onTick(long millisUntilFinished) //타이머가 실행되는 동안 수행
{
startService(new Intent(this, SimpleService.class));
}
@Override
public void onFinish()//타이머가 끝날 때 수행
{
stopService(new Intent(this, SimpleService.class));
}
}
2. 메인 액티비티 (SimpleServiceActivity)
public class SimpleServiceActivity extends Activity implements OnClickListener{
private Button startServiceButton;
EditText setLocktime;
Button timerStart;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
startServiceButton = (Button)findViewById(R.id.startService);
setLocktime = (EditText)findViewById(R.id.setLockTime);
timerStart = (Button)findViewById(R.id.timerStart);
startServiceButton.setOnClickListener(this);
timerStart.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.startService:
startService(new Intent(this, SimpleService.class));
break;
case R.id.timerStart: String timestr; timestr = setLocktime.getText().toString();
int time = Integer.parseInt(timestr);
final CounterDown timer = new CounterDown (time*1000, 1000); timer.start(); } } }