0
CheckBox checkBox = (CheckBox) findViewById(R.id.checkBoxSync);
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
startService(new Intent(UltilityActivity.this, SynService.class));
}
}
});
이 확인란을 선택하면 SynService 클래스가 시작됩니다.확인란을 선택하면 Android에서 서비스가 시작됩니다.
공용 클래스 SynService 서비스 {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
Log.d(null,"Create Service");
Toast.makeText(this, "Service created!", Toast.LENGTH_LONG).show();
}
@Override
public void onDestroy() {
Toast.makeText(this, "Service stopped", Toast.LENGTH_LONG).show();
}
@Override
public void onStart(Intent intent, int startid) {
Log.d(null,"Start Service");
Toast.makeText(this, "Service started by user.", Toast.LENGTH_LONG).show();
}
}
를 확장하고 이것은 synservice 클래스입니다,하지만 난 체크 한 경우, 서비스가 시작되지 않고 아무 일이 없다. 왜?
두 번째 질문은 서비스가 시작될 때마다 30 분마다 데이터를 동기화하려고합니다. 코드를 입력하고 장치를 종료 할 때까지 계속 반복해야합니다. AndroidMafifest.xml에서 추가로 해결
startService 기능이 내부의 경우 호출되는 경우에 당신이 알고, 더 많은 코드를 작성해야 할 수도 있습니다 (isChecked)? 또한 두 번째 질문에 대해서는 루프를 사용하지 말고 AlarmManager를 사용하고 30 분마다 서비스를 깨우십시오. – Ben
@Ben 네, 서비스가'isChecked' 안에서 시작되지만, 체크 박스가 체크 되어도 서비스를 시작할 수 없다는 것을 알고 있습니다. 두 번째 질문에서 나는 AlarmManager를 시도 할 것입니다. –
체크 박스를 체크했을 때 서비스가 시작되고 isChecked 서비스가 시작되고 있는지 이해할 수 없습니다. onCheckedChanged 리스너는 상자가 선택되거나 선택 취소 될 때만 호출되어야합니다. 서비스가 중지되지 않은 경우 시작은 이후 시간으로 호출되지 않습니다. onStartCommand 만 호출됩니다. – Ben