서비스를 시작하기 위해 AlarmManager 객체를 설정했습니다.
AlarmManager에 의해 시작된 서비스가 작업에서 중지되지 않았습니다.
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); //context = getApplicationContext();
Intent alarmServiceIntent = new Intent(context, AlarmHandlingService.class);
alarmServiceIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
alarmServiceIntent.putExtra("alarmId", _id); //_id is a "long" value
PendingIntent pi = PendingIntent.getService(context, (int)_id, alarmServiceIntent, 0);
am.set(AlarmManager.RTC_WAKEUP, time, pi);
onStartCommand(..., ..., ...)
AlarmHandlingService
의 작품은 일해야하고있을 때 작동한다. 새로운 활동이 열립니다 (SomeActivity) 내가 stopService(...)
를 호출 할 때 다음, 서비스가 중지되지
public int onStartCommand(Intent intent, int flags, int startId)
{
long alarmId = intent.getLongExtra("alarmId", -1);
Intent someActivityIntent = new Intent(this, SomeActivity.class);
someActivityIntent.putExtra("alarmId", alarmId);
someActivityIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(someActivityIntent);
return START_NOT_STICKY;
}
:하지만이 선언은
stopService(new Intent(context, AlarmHandlingService.class)); //context = getApplicationContext();
어떤 문제가되지 않습니다 매니페스트 내 서비스 클래스 :
<service android:name="***myPackageName***.AlarmHandlingService"></service>
나는 디버깅 시도하고 눈치 해당 android.content.ContextWrapper
제공자 라이선스 계약의 registerReceiver (BroadcastReceiver receiver, IntentFilter filter)
기능 내가 stopService
라고 부를 때 호출됩니다.
당신의 onDestroy()에는 무엇이 있습니까? – NetStarter
나는 onDestroy와 아무 상관이 없습니다. stopService 이후에 호출되지 않습니까? 그리고 내 stopService가 전혀 호출되지 않았습니다 ... @ Override public boolean stopService (의도 이름) { Log.e (TAG, "Service is stopped"); return super.stopService (name); } – smb
Aaaaaa !!!! 매우 고맙습니다. NetStarter :) stopService에서 onDestroy로 코드를 옮겼습니다. 이제 작동합니다. :) – smb