首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从应用程序类中注销广播接收器?

如何从应用程序类中注销广播接收器?
EN

Stack Overflow用户
提问于 2017-11-23 11:58:28
回答 7查看 3.5K关注 0票数 2

我在Android的应用类中注册了广播接收器,但现在我的问题是在哪里注销广播呢?

代码语言:javascript
复制
public class MyApplication extends Application 

{

@Override
public void onCreate() {
     ..... 
     // OTHER INITIALIZATIONS
     initNetworkBR();
} 
private void initNetworkBR() {

      br = new BroadcastReceiver() {
        ....
      };
      IntentFilter filter = new IntentFilter();
      filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
      registerReceiver(br, filter);
   }
}
EN

Stack Overflow用户

发布于 2022-07-06 10:09:14

正如上面提到的@Naruto,您可以在onDestroy应用方法上取消它的注册。但是,使用广播Receiversin活动而不是整个应用程序总是一个更好的选择。

您可以使用以下方法在活动中使用它:

代码语言:javascript
复制
public class DetailsActivity {

private BroadcastReceiver mNetworkReceiver;

 @Override
    protected void onCreate(Bundle savedInstanceState) {
    mNetworkReceiver = new NetworkReceiver();
    registerReceiver(mNetworkReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
 }

这是取消注册的方法。

代码语言:javascript
复制
 @Override
 protected void onDestroy() {
    super.onDestroy();
    unregisterNetworkChanges();
 }

 protected void unregisterNetworkChanges() {
    try {
        unregisterReceiver(mNetworkReceiver);
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    }
  }
票数 1
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47455040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档