Ты не должен так поступать, я думаю.
Я вижу, по крайней мере, два недостатка в вашем методе: - алармангер будет слишком занят - вы не можете зарегистрировать широковещательный приемник от другого широковещательного приемника
Другой, лучший способ сделать этобудет использовать метод handler.postDelayed:
Ваш сервис должен попросить обработчика вернуться через несколько секунд (когда вы захотите)
@Override
public int onStartCommand(final Intent intent, final int flags, final int startId) {
//do some treatment based on the action intent
//first action is used to compute 10 time stamps
//second action is used to treat task
//then use a handler to reschedule your service
handler.postDelayed( new Runnable() {
@Override
public void run() {
onStartCommand( <intent for action 2>, flags, startId);
Log.v( LOG_TAG, "timer sending intent");
}
}, delayInMsToNextTask );
}//met
Таким образом, нет никакого способадля радиовещательного приемника.
И я забыл сказать, что вы должны зарегистрировать свой сервис для двух намеренных действий в файле манифеста.
<service android:name="myService">
<intent-filter>
<action android:name="action1" />
</intent-filter>
<intent-filter>
<action android:name="action2" />
</intent-filter>
</service>
Кроме того, было бы неплохо добавить одно действие, но чтобы отличить то, что onStartCommand должен делать, используя дополнительные функции в намерениях с тем же именем.Тогда ваша служба будет регистрироваться для одного действия в вашем манифесте.
В следующий раз, если вы чувствуете, что ваши объяснения не так ясны, пожалуйста, пришлите какой-нибудь код / псевдокод.1019 *