新手-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日