2016-04-22 53 views
0

我在我的应用程序中使用广播接收器,它在应用程序打开时处于活动状态以及应用程序处于关闭状态。我需要的只是在应用程序打开时以及在特定活动时激活此广播接收器。如何仅在Android中的APP背景中激活Broadcast Receiver?

这里是我的

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()); 
    } 


} 
+0

见我对这个职位的答案:http://stackoverflow.com/a/36665760/4706693 – NSimon

+1

在注册的onResume广播你想要的活动,在onPause注销它相同的活动。有关更多信息,请参阅官方文档 –

回答

0

例如:

@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())); 
} 
相关问题