Я работаю над приложением для фильтрации родительского контроля/для взрослых. Это приложение постоянно отслеживает звонки и sms на дочернем мобильном устройстве и регистрирует всю активность на сервере. Для этого я запускаю сервис (MyService.java) на BOOT_COMPLETED и в методе onCreate службы я зарегистрирую контент-сервер для callLog и sms uri (см. ниже фрагмент кода).
Теперь проблема заключается в том, что я хочу отслеживать каждый исходящий, входящий вызов s и смс. Я хочу, чтобы служба постоянно работала (без остановки/убийства). Кроме того, эта Служба используется только для регистрации наблюдателей контента и не выполняет никакой другой обработки (ее метод OnstartCommand является фиктивным), поэтому Android-сервер убивает службу после некоторого времени. Как обеспечить непрерывность работы службы и сохранение содержимого объекта contentobserver?
public class MyService extends Service { private CallLogObserver clLogObs = null; public void onCreate() { super.onCreate(); try{ clLogObs = new CallLogObserver(this); this.getContentResolver().registerContentObserver(android.provider.CallLog.Calls.CONTENT_URI, true, clLogObs); }catch(Exception ex) { Log.e("CallLogData", ex.toString()); } } @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onDestroy() { if( clLogObs !=null ) { this.getContentResolver().unregisterContentObserver(clLogObs); } super.onDestroy(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { super.onStartCommand(intent, flags, startId); return Service.START_STICKY; } @Override public boolean onUnbind(Intent intent) { return super.onUnbind(intent); }