如何在Android中处理已弃用的处理程序 [英] How to handle deprecated Handler in android

查看:1300
本文介绍了如何在Android中处理已弃用的处理程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以前,这段代码可以完美地工作。


现在,它表明android.os.handler已过时。

 私有最终处理程序mHandler = new Handler(){
@Override
public void handleMessage(Message msg){
switch(msg.what){
case MESSAGE_STATE_CHANGE:
休息;
}
}

我们如何解决此问题。

解决方案

正如Mike在评论中提到的, Handler 不被弃用。不推荐使用 new Handler()创建Handler对象的方式。


根据文档,使用 new Handler()可能会导致错误。因此,您应该为处理程序明确指定一个循环程序。循环程序不能为空。 .getMainLooper()){
@Override
public void handleMessage(Message msg){
switch(msg.what){
case MESSAGE_STATE_CHANGE:
break;
}
}


Previously this code worked perfect.

Now its is showing android.os.handler is deprecated.

private final Handler mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case MESSAGE_STATE_CHANGE:
        break;
        }
    }

How can we resolve this issue.

解决方案

As mentioned by Mike in the comments, Handler is not deprecated. The way of creating an object of Handler using new Handler() is deprecated.

As per the documentation, using new Handler() can lead to bugs. So you should specify a looper for the handler explicitly. Looper must not be null.

Refer the code:

private final Handler mHandler = new Handler(Looper.getMainLooper()) {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case MESSAGE_STATE_CHANGE:
        break;
        }
    }

这篇关于如何在Android中处理已弃用的处理程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆