新手-99 2022-08-20 14:41 采纳率: 79.3%
浏览 16
已结题

安卓Handler能否更新全局变量

安卓中,能否通过Handler更新全局变量?
如:

private String STR ; //定义一个全局变量

  Handler mHandler = new Handler(Looper.myLooper()) {
        @Override
        public void handleMessage(@NonNull Message msg) {
            super.handleMessage(msg);
            if (msg.what == 0) {
               STR = (String) msg.obj; //更新全局变量
            }
        }
    };

//假定这是onCreate
  public void onCreate(Bundle savedInstanceState) {
          *****
          ****
          if(STR ! = null){
                Log.d("q",STR);
          }
        new Thread(() -> {
            //模拟耗时操作
            String str = “CSDN,YYDS";
            Message message = new Message();
            message.obj = str;
            message.what = 0;
            mHandler.sendMessage(message);
        }).start();

 }

此时打印的是CDSN,YYD,还是什么都没打印?
如果这种方法无法更新全局变量,那应该用什么方法?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 已结题 (查看结题原因) 8月20日
    • 修改了问题 8月20日
    • 创建了问题 8月20日

    悬赏问题

    • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
    • ¥15 android 集成sentry上报时报错。
    • ¥50 win10链接MySQL
    • ¥35 跳过我的世界插件ip验证
    • ¥15 抖音看过的视频,缓存在哪个文件
    • ¥15 自定义损失函数报输入参数的数目不足
    • ¥15 如果我想学习C大家有是的的资料吗
    • ¥15 根据文件名称对文件进行排序
    • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
    • ¥15 有人会用py或者r画这种图吗