Miss_Lamb 2021-05-07 10:30 采纳率: 100%
浏览 49
已结题

Android,通过handler处理的消息的获取

  //子线程发消息,通知Handler完成UI更新
    private void LoginConnect(String username,String userpassword) {
        Toast.makeText(Login.this,"我--->子线程运行了!<------",Toast.LENGTH_SHORT).show();
        Runnable run= new Runnable() {
            @Override
            public void run() {
                //耗时操作,完成之后发送消息给Handler,完成UI更新;
                String ret = DBUtil.LoginQuery(username,userpassword);//返回String类型的0或1
                //数据传递
                Message msg=new Message();
                msg.what=1003;
                Bundle data=new Bundle();
                data.putString("result",ret);
                msg.setData(data);
                mHandler.sendMessage(msg);//TODO ?发送到主线程中?
            }
        };
        new Thread(run).start();
    }


 private String isallow;
    //主线程中定义handler
    Handler mHandler=new Handler(){
        public  void handleMessage(android.os.Message msg){
            Toast.makeText(Login.this,"我handler运行了!",Toast.LENGTH_SHORT).show();

            switch (msg.what){
                case 1003:
                    isallow = msg.getData().getString("result");//完成主界面更新,拿到数据
                    break;
                default:
                    break;
            }
        }
    };

前辈们好,感谢你们阅读我的提问。我是一名Android新手,希望得到你们的指教。

问题:求前辈指教,通过handler处理的消息能否在主线程中作为变量获取,而不是更新UI呢?

描述:这是我为了实现系统登录的代码,传入用户名和密码去数据库中比对,返回结果为String类型的0或1。我的理解是mHandler处理消息以后,isAllow应该被设为0或1,我想得到isAllow,在主线程中对其进行判断,实现登录。不知道能不能有这样的操作呢?(我看到的大多数都是更新UI)

  • 写回答

2条回答 默认 最新

  • 谁抢我的小口口 2021-05-07 10:36
    关注

    可以

     

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

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?