Лучший способ сделать это, объявив приемник вещания в манифесте, это приведет к тому, что код в вашем классе BroadcastReceiver будет выполняться каждый раз при запуске события, без необходимости запуска службы в фоновом режиме все время, пусть OS обрабатывать наблюдающая часть для вас ...
<receiver android:name=".ReceiverExample">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
Теперь в вашем BroadcastReceiver классе «ReceiverExample», создать SharedPreference для хранения количества Incomming вызовов, а также основываясь на том, что вам может подтвердить, есть ли время сделать что-то еще или нет ...
public class ReceiverExample extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//Logic to listen incoming calls, and keep track of them using Shared Preferences..
}
}
Службы хороши для длительных задач, но сама ОС хорошо подходит для мониторинга/наблюдения событий (например, событий телефонии, например. Incomming звонков ...), постарайтесь не переделать работу операционной системы путем создания служб только для мониторинга уже известных событий ...
С уважением
Вы можете зарегистрироваться в качестве приемника, а затем вы могли бы хранить информацию в базе данных sqlite. – gsingh2011