2016-10-26 3 views
0

나는 내가 서비스를 썼다 Android 서비스를 다시 시작하는 시간을 줄이는 방법은 무엇입니까?

onStartCommand

START_REDELIVER_INTENT을 반환하고 내 테스트 후 최근 목록

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 

    return START_REDELIVER_INTENT; 
} 

에서 응용 프로그램을 사용자 후 생존을 유지 닫으려는 경우 안드로이드 서비스가 다시 시작됩니다 알고, 내 서비스는 것입니다 사용자가 START_REDELIVER_INTENT 때문에 최근 목록에

을 응용 프로그램을 닫으면 살해하는 것은, 안드로이드는 자동 서비스를 다시 시작하지만 시간이 너무 깁니다

서비스가 20 초 이내에 다시 시작될 때가 있습니다. 1 분에 약간의 시간이 다시 시작됩니다. 어떻게하면이 시간을 줄일 수 있습니까? 5 초 내에 더 좋습니다.

답변

0

서비스 클래스 내부에서이 코드를 사용하십시오. 앱이 사용자에 의해 지워질 때 서비스를 다시 시작합니다. 그리고 START_STICKY를 onstartCommand 메소드로 반환 할 수 있습니다.

@Override 
    public void onTaskRemoved(Intent rootIntent) { 
     Intent intent2 = new Intent(this.getApplicationContext(), this.getClass()); 
     intent2.setPackage(this.getPackageName()); 
     PendingIntent pendingIntent = PendingIntent.getService((Context)this.getApplicationContext(), (int)1, (Intent)intent2,0); 
     ((AlarmManager)this.getApplicationContext().getSystemService(ALARM_SERVICE)).set(3, 500 + SystemClock.elapsedRealtime(), pendingIntent); 
     super.onTaskRemoved(rootIntent); 
    } 
+0

'onTaskRemoved()'는 거의 발생하지 않지만 호출되지 않을 수 있습니다. – Onik

+0

제 경우에는 항상 호출됩니다. 귀하의 경우에는 어떤 일이 발생합니까? –

+0

다른 API 버전을 사용하는 모든 'Android'기기에서 테스트 해 보셨습니까 ??? 나는 일반적인 경우에 대해서만 이야기했다. 테스트 된 유일한 장치가있는 특별한 경우는 아니었다. – Onik

관련 문제