У меня есть следующая схема:Android: служба начинается после завершения родительской активности.
активность -Какой может начать активность B. активность B имеет фоновую службу она использует которая запускается с помощью сигнала тревоги следующим образом:
alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
serviceSaveSample = new Intent(getApplicationContext(),
SaveSampleService.class);
alarmSaveSample = PendingIntent.getService(getApplicationContext(),
9988766, serviceSaveSample, PendingIntent.FLAG_UPDATE_CURRENT);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
+ (secondsToSample * 1000), secondsToSample * 1000,
alarmSaveSample);
Реализация сервиса:
public class SaveSampleService extends Service { ...
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
new Intent(this, RunActivity.class), 0);
Notification notif = new NotificationCompat.Builder(
getApplicationContext()).setAutoCancel(true)
.setContentText("message").setSmallIcon(R.drawable.logo)
.setAutoCancel(true)
.setSmallIcon(R.drawable.logo)
.setContentIntent(contentIntent)
.build();
startForeground(startId, notif);
// some work...
return START_STICKY;
}
проблема заключается в том, что если я переместить приложение в фоновом режиме, когда активность B находится на вершине стека и запущена служба, служба перезапускается после того, как я закрыл Activ i B явно.
Я пробовал любые, если не все флаги, и эта проблема сохраняется. попытался установить значение параметра launchMode для любого из значений и все еще не работал. любые предложения?
Убедитесь, что вы не призывающую '' startService' в OnCreate() 'деятельности по – Apurva
, где вы остановите службу? – pskink
i остановить будильник, когда кнопка нажата и включена onDestroy –