2022年2月27日 星期日

Android Studio - 解決 Handler Deprecated 棄用方法(五十三)

Android Studio - 解決 Handler Deprecated 棄用方法(五十三):

Handler 此構造函數在 Android 11 中已棄用(Handler() is deprecated),因為 Handler 可能會導致操作靜默丟失或崩潰的錯誤,但可以更改代碼,便可以繼續使用相同的功能,當然可以加入忽略警告代碼(@SuppressWarnings(“deprecation”);),但也可以重寫 Handler 代碼。

Android Studio Handler is Deprecated Message
使用以前的方法重寫 Handler 的 handleMessage 方法提示棄用:

Handler handler = new Handler(){

     // 提示deprecated

    @SuppressLint("HandlerLeak")

    @Override

    public void handleMessage(@NonNull Message msg) {

   

        super.handleMessage(msg);

        TextView tv_thread = findViewById(R.id.tv_thread);

        tv_thread.setText("" + msg.obj);

    }

};


改用新增 Looper.getMainLooper() 作解決:

Handler handler = new Handler(Looper.getMainLooper()){

     // 解决

    @SuppressLint("HandlerLeak")

    @Override

    public void handleMessage(@NonNull Message msg) {

   

        super.handleMessage(msg);

        TextView tv_thread = findViewById(R.id.tv_thread);

        tv_thread.setText("" + msg.obj);

    }

};


2022年 2月 27日(Sun)天氣報告
氣溫:47.0°F / 8.0°C @ 07:00
風速:每小時 21公里
降雨機會:50%
相對濕度:百分之 91%
天氣:多雲

沒有留言:

張貼留言