大海话语 2022-01-08 17:46 采纳率: 87.6%
浏览 32
已结题

广播 接收不到,其它类,则可以

为什么 我的广播发送之后,在另一个类里面没有接收到呢?
下面是login发送的广播

  public static final String ACTION_LOGIN_SUCCESS = "ACTION_LOGIN_SUCCESS";

 Toast.makeText(LoginAc.this, "登录成功!", Toast.LENGTH_SHORT).show();
                        //广播发送用户名
                        Intent intent = new Intent();
                        intent.setAction(ACTION_LOGIN_SUCCESS);

                        sendBroadcast(intent);

                        // 如果登录成功
                        setResult(Activity.RESULT_OK);
                        finish();

这个finish()就是会返回到上一层,上一层,就是没有接收到广播
这是广播接收者类

//广播接收者
    private BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            //如果 login成功
            if (intent != null || "".equals(intent)) {
                String loginSuccess = intent.getStringExtra(LoginAc.ACTION_LOGIN_SUCCESS);
                if(loginSuccess != null){
                    btn_exit_app = (TextView) findViewById(R.id.btn_exit_app);
                    btn_exit_app.setText("退出登录");
                    btn_exit_app.setTextColor(getResources().getColor(R.color.color_white));
                    btn_exit_app.setWidth(500);
                }
            }

        }
    };

从外层进入到广播接收者类,是有经过 onCreate()方法的,有刷新,那 那个想要设置的TextView的文字 可以显示,就是在登录后,发送了广播 ,这里没有接收到。怎么回事呢?

  • 写回答

2条回答 默认 最新

  • 普通网友 2022-01-08 23:46
    关注

    你 的误区在于对于广播的理解;
    广播有两种注册方式,一种是静态,一种是动态;
    我看你的代码是动态注册 ,也就是 在页面中注册的;


    按你的情况来看,你有两种选择方式
    1、用广播,但广播的注册 ,你需要留意,动态的话,需要 在页面中的OnResume中注册好;
    不然就会收不到;
    2、用RESULT_OK,你A页面打开login时,使用希望返回形式的Intent,在login页面返回时,加上result——ok,
    顺带回参数即可。

    以上可以解决你的问题

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月17日
  • 已采纳回答 1月9日
  • 创建了问题 1月8日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来