如何在Android中处理已弃用的处理程序 [英] How to handle deprecated Handler in 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屋!