首页 > 其他分享 >Android ‘Handler()‘ is deprecated

Android ‘Handler()‘ is deprecated

时间:2023-06-28 12:12:21浏览次数:53  
标签:API handler deprecated myLooper Handler Looper new Android

private Handler handler = new Handler();

Handler() 此构造函数在 Android 11 /R 之后已弃用。

在 Handler 构造期间隐式选择 Looper 会导致操作无声地丢失(如果 Handler 不期待新任务并退出)、崩溃(如果有时在没有 Looper 活动的线程上创建处理程序)或竞争条件,处理程序关联的线程不是作者预期的。

相反,使用 Executor 或 显式指定 Looper,使用 Looper#getMainLooper {link android.view.View#getHandler} 或类似方法。如果为了兼容性需要隐式线程本地行为,请使用 new Handler(Looper.myLooper())。

 

解决

1、添加 Looper.getMainLooper() 或 Looper.myLooper() 方法。

private final Handler handler = new Handler(Looper.getMainLooper());
private final Handler handler = new Handler(Looper.myLooper());

 

new Handler() 变更为 new Handler(Looper.myLooper())
new Handler(Handler.Callback callback) 变更为 new Handler(Looper.myLooper(), callback


refs:
官方API:链接

https://stackoverflow.com/questions/61023968/what-do-i-use-now-that-handler-is-deprecated


除了startActivityForResult()方法之外,requestPermissions()方法也被废弃了。至于理由都是一样的,推荐使用Activity Result API。

 详细替换方案见: https://developer.android.com/training/basics/intents/result?hl=zh-cn#java https://blog.csdn.net/guolin_blog/article/details/121063078  

 

 

refs:
android官网:Activity Result API

标签:API,handler,deprecated,myLooper,Handler,Looper,new,Android
From: https://www.cnblogs.com/bluestorm/p/17511059.html

相关文章

  • Android线程管理之ExecutorService线程池
    为什么要引入线程池?   1.)newThread()的缺点每次newThread()耗费性能调用newThread()创建的线程缺乏管理,被称为野线程,而且可以无限制创建,之间相互竞争,会导致过多占用系统资源导致系统瘫痪。不利于扩展,比如如定时执行、定期执行、线程中断  2.)采用线程池的优点重用存在的......
  • Android各版本 内外卡真实路径
    Android各版本内外卡真实路径【2.3.6】内卡:/mnt/sdcard(底层映射路径:/sdcard)外卡:/mnt/sdcard/external_sd(底层映射路径:/sdcard/external_sd)附:内外卡互换卡刷包http://pan.baidu.com/share/link?shareid=65738&uk=2197868393 【4.0.4】(CM9)内卡:/mnt/sdcard(底层映射路径:/sd......
  • Android使用poi遇到的问题
    原文:Android使用poi遇到的问题关于Poi使用可以看这一篇【开源库推荐】#4Poi-办公文档处理库本篇主要讲些在Android上使用出现的问题问题原本是需要一个导出xlsx表格文件的功能,debug测试可以用,但是编译打包apk就报错了结论由于Poi里大量使用到了反射,所有使用Poi导出xlsx......
  • 豆瓣评分 8.6,近 5 万读者学习的 Android 经典最新版出版,承载无数程序员的回忆......
    题图|新的小绿人 ©Google“出色向导”对新手来说,学习Android开发一开始会很难。就像初次踏入异国他乡一样,即使会说当地语言,一开始也绝不会有舒服自在的感觉。周围人习以为常的东西你不能理解,原有的知识储备在新环境下也完全派不上用场。Android有自己的语言文化——使用K......
  • 在Androidstudio 中 通过jni java 和c++相互调用实现方法
    在Androidstudio中通过jnijava和c++相互调用实现方法1.创建javanative方法类publicclassNativeAPI{privatestaticfinalStringTAG=APP_TAG+"TestJni";static{System.loadLibrary("testnative");}//从c++so中获取字符串publicna......
  • Spring REST 接口自定义404不能捕获NoHandlerFoundException问题
    SpringREST接口自定义404以及解决不能捕获NoHandlerFoundException问题  一、自定义404响应内容版本说明:SpringBoot2.0.1.RELEASEREST风格默认PostMan请求的404响应如下:{"timestamp":"2018-06-07T05:23:27.196+0000","status":404,"error":&quo......
  • Android自定义控件
    继承现有控件类publicclassLeftButtonBarextendsLinearLayout{//默认实现的构造函数beginpublicLeftButtonBar(Contextcontext){super(context);}publicLeftButtonBar(Contextcontext,@NullableAttributeSetattrs){supe......
  • Android应用开发靠不住,还是Android系统开发香!
    背景2015-2023,我已经工作将近8年了,刚开始我是一名Android应用层开发工程师,2021年我开始转为系统工程师,向着更底层出发了,因为我想提高自己的职场竞争力,应用层开发相对简单,系统层会更有难度,更有挑战,也更不容易被市场淘汰。而且现在的Android市场,Android初级工程师早就已经严重饱和了,......
  • delegate、event、EventHandler、Action、Func
    彻底弄懂C#中delegate、event、EventHandler、Action、Func的使用和区别 【目录】1委托2 事件-概念的引出3 事件-关于异常4 事件-关于异步5 委托-Func与Action 1委托在.NET中定义“委托”需要用到delegate关键字,它是存有对某个方法的引用的一种引用类型变量,类......
  • 面试碰壁如何力挽狂澜,有了这份Android指南你也可以有绿色通道!
    简历怎样写才能过初步筛选?大厂面试到底要求什么,关注什么?技术面试如何展示自己的实力?95%的面试者都有这些疑问,所以今天,给大家分享一些面试准备的干货:一、简历要有含金量一份漂亮的简历就是你进入大厂的敲门砖。网上有很多教程教大家如何写出一份漂亮的简历,这里我就不做重复劳动了今......