scheduleAtFixedRate에 문제가 있습니다. 한 번만 호출되며 반복하지 않습니다. 뭐가 잘못 되었 니?Android - 서비스 : 한 번만 반복
public class TimerService extends Service {
static final int UPDATE_INTERVAL=3000;
private Timer timer = new Timer();
private Date date;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
repeatJob();
//Here we want this service to continue running until it is explicitly stopped, so return sticky
return START_STICKY;
}
private void repeatJob() {
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
Looper.prepare();
date = new Date();
displayToast(date.toString());
Log.d("repeat", new Date().toString());
Looper.loop();
}
}, 0, UPDATE_INTERVAL);
}
private void displayToast(String text) {
Toast.makeText(this, text, Toast.LENGTH_LONG).show();
}
}
나는 조각 활동에서 서비스를 호출 :
getActivity().startService(new Intent(getActivity().getApplicationContext(), TimerService.class));
가 어떻게 조각 활동 서비스에서 (미래에 어쩌면 더 많은 값) 날짜의 현재 값을받을 수 있나요?
감사합니다.
START_STICKY 앞에있는 댓글은 내 교수의 원본 코드에서 복사됩니다. IntentService에 대한 첫 번째 질문 : 다음과 같이 서비스에 Intent를 작성했습니다. Intent retIntent = new Intent (TimerService.this, MainActivity.class); retIntent.putExtra ("date", date.toString()); MainActivity에서 날짜를 얻으려면 어떻게해야합니까?알람 관리기에 대한 질문 : 내가 서비스의 onHandleIntent에 알람 관리기를 사용하려고하지만, 응용 프로그램이 코멘트 너무 긴 것 때문에 내가 evrything을 쓸 수 없습니다 충돌합니다 ... :/ – honiahaka10
에게 의도는 것 매개 변수로 액티비티의 onCreate (액티비티를 재 작성해야하는 경우) 또는 onNewIntent 메소드 (액티비티가 이미 활성 인 경우)로 전달됩니다. 그런 다음'Intent.getStringExtra'를 호출하여 문자열을 검색 할 수 있습니다. 두 번째 질문에 관해서는, 필요하다면 두 번째 질문을 열어서, 스택 추적을 게시하도록하십시오. –