0

I start my services by clicking in button and stop my services by stop button.

My Service class is given below

public class Services extends Service {

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public int onStartCommand (Intent intent,int flags, int startId){
        Log.d("Services","Started...");
        return START_NOT_STICKY;
    }
    @Override
    public void onDestroy () {
        super.onDestroy();
        Log.d("Services","Stoped...");
    }
}

My Receiver class is given below

public class Reciever extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        //check the intent something like:
        if (Intent.ACTION_MEDIA_BUTTON.equals(intent.getAction())) {
            KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
            if (KeyEvent.KEYCODE_VOLUME_UP== event.getKeyCode()) {
               Log.d("Volume","Down");
            }
        }
    }

}
Saran Sankaran
  • 2,335
  • 2
  • 19
  • 34

1 Answers1

0

First remove the internet filters in the manifest and then. In the Activity where you are starting the service, along with that register your BroadcastReciverand when you stop the service from Activity the activity, after stop UnRegister the BroadcastRecived

Register

IntentFilter filter = new IntentFilter();
filter.addAction("SOME_ACTION");
filter.addAction("SOME_OTHER_ACTION");

receiver = new MyBroadcastReceiver();
registerReceiver(receiver, filter);

Unregister

if (receiver != null) {
   unregisterReceiver(receiver);
   receiver = null;
}
Saran Sankaran
  • 2,335
  • 2
  • 19
  • 34
  • Read more about it here https://developer.android.com/guide/components/broadcasts.html under the title `Context-registered receivers` – Saran Sankaran Dec 20 '17 at 10:16
  • private void StopClick() { stopService(new Intent(MainActivity.this,Services.class)); unregisterReceiver(broadcastReceiver); } private void Startclick() { startService(new Intent(MainActivity.this,Services.class)); IntentFilter mediaFilter = new IntentFilter(); mediaFilter.addAction("android.intent.action.MEDIA_BUTTON"); this.registerReceiver(broadcastReceiver, mediaFilter); registerReceiver(broadcastReceiver, mediaFilter); } – Roshan Sharma Dec 20 '17 at 10:25