I have registered receiver on onCreate method of Service and unregister it onDestroy? It works perfectly, but on certain Samsung Galaxy s3 i still recives receiver even i stopped service. How to find a solution? is it possible? Please help me. Thanks in advance
package com.sms.sendsms.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
/**
* Created by Navruz on 30.03.2016.
*/
public class SendSmsService extends Service {
private static Logger LOGGER = LoggerFactory.getLogger(SendSmsService.class);
@Override
public void onCreate() {
super.onCreate();
LOGGER.info("Service is onCreate");
registerReceiver(incomingCallReceiver, new IntentFilter(
TelephonyManager.ACTION_PHONE_STATE_CHANGED));
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
LOGGER.info("Service is onStartCommand");
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(incomingCallReceiver);
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
private BroadcastReceiver incomingCallReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
LOGGER.info("IncomingCallReceiver is received.");
TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
telephony.listen(new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
LOGGER.info("state : " + state);
}
}, PhoneStateListener.LISTEN_CALL_STATE);
}
};
}