0

I am using Broadcast Receiver in my app which is active when app is open as well as app in close.what I want is to active this Broadcast Receiver only when app is open and also on specific activity.

here is my

public class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    // Check if the application is install or uninstall and display the message accordingly
    if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {
        // Application Install
        Log.e("Package Added:-", intent.getData().toString());

    } else if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {

        Log.e("Package Removed:-", intent.getData().toString());
    } else if (intent.getAction().equals("android.intent.action.PACKAGE_REPLACED")) {
        Log.e("Package Replaced:-", intent.getData().toString());
    }


}
Raj
  • 41
  • 2
  • 7
  • See my answer on this post : http://stackoverflow.com/a/36665760/4706693 – NSimon Apr 22 '16 at 09:37
  • 1
    Register the broadcast in onResume of your wanted activity, unregister it in onPause of the same activity. See the official doc for more info – An-droid Apr 22 '16 at 09:39

1 Answers1

0

For example :

@Override
protected void onPause () {

    // Unregister since the activity is not visible
    LocalBroadcastManager.getInstance(this).unregisterReceiver(mReceiver);
    super.onPause();
}

@Override
protected void onResume () {
    super.onResume();

    // Register mMessageReceiver to receive messages.
    LocalBroadcastManager.getInstance(this).registerReceiver(mReceiver,
                                                             new IntentFilter(
                                                                     YourBroadcastReceiver.class
                                                                             .getSimpleName()));
}
An-droid
  • 6,433
  • 9
  • 48
  • 93