我已注册onCreate方法的服务的接收器,并取消注册onDestroy?它完美的工作,但在某些三星Galaxy S3我仍然recive接收器,即使我停止服务。如何找到解决方案?可能吗?请帮帮我。在此先感谢Android注销接收器,但仍然收到
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);
}
};
}
您可以发布您的代码? –
Uraaaaa :)))))))))我找到了解决方案。问题是telephony.listen(新的PhoneStateListener(),..)不reciver。我所需要做的就是telephony.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE); onDestroy方法。 – nAkhmedov