Получение информации о намерениях от службы только один раз

Я запускаю службу. Мой идеальный процесс состоял бы в том, чтобы вызвать метод один раз, получить намерение/дополнения и установить параметры, а затем запустить мою службу в течение заданного периода времени.

Насколько я понимаю, onCreate() вызывается только один раз, а onStartCommand вызывается каждый раз, когда вызывается ваша служба. В настоящее время это ставит меня в обратную ситуацию: метод, который я хочу вызвать один раз, не имеет доступа к дополнительным функциям намерения, и я не хочу переназначать параметры каждый раз, когда startService вызывается через метод, который имеет доступ к намерению (или мне наплевать на происходящее?).

Является ли единственный способ получить то, что я хочу, так, как я этого хочу, просто ограничить возможность запуска службы, если она уже запущена?

Заранее спасибо.


person Utopia025    schedule 08.08.2013    source источник


Ответы (1)


поместите флаг static int в onCreate и поднимите его до 1 при первом вызове, затем проверьте его в OnStartcommand, равен ли этот флаг 1 или нулю, если ноль делает то, что вы хотите делать, иначе ничего не делайте

  static int flag=0;
public void onCreate() {
    // TODO Auto-generated method stub
    super.onCreate();
    flag=1
}
public int onStartCommand(Intent intent, int flags, int startId) {
if(flag==0){
//run ur code
}
}
person Shakeeb Ayaz    schedule 08.08.2013