1
나는 살아 서비스를 유지하기 위해 다음 코드를 사용 :낮은 메모리 부족 상태에서도 서비스를 유지하는 것이 올바른 방법입니까?
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
...
keepServiceAlive(this, 2222);
return super.onStartCommand(intent, flags, startId);
}
@SuppressWarnings("deprecation")
public void keepServiceAlive(Service service, int id) {
Notification note = new Notification(0, null, System.currentTimeMillis());
note.flags |= Notification.FLAG_NO_CLEAR;
service.startForeground(id, note);
}
을하지만 가끔은 서비스는 여전히 살해되고 있었다. 이 코드 조각의 정확성을 확인하도록 도와 주시겠습니까? 아니면 더 나은 솔루션을 제공하겠습니까?
의미가 있습니다. 그러나 여기에서 핵심적인 문제는 : 귀하의 제안이 저 기억력을 발휘할 수있는 더 많은 기회를 제공 할 것인가? – JackWM
'startForeground()'가 아마도 당신이 할 수있는 최선일 것입니다. 만약 당신이 진짜로 * 원할 경우 반복적 인 알람을 실행하여 서비스를 시작할 의도가 생기면 살해 당하면 다음 알람에서 다시 시작될 것입니다. 나는 사용자가 정말로 꺼야 할 것이거나 그렇게 오래 가지 않기를 원하는 것이기 때문에 당신이 정말로 이것을해야한다는 것을 진지하게 생각할 것입니다. – Karakuri