自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 解决RadioGroup中 onCheckedChanged 调用多次问题

当利用RadioGroup中的onCheckedChanged 会发现被调用多次,为什么呢?接下来让我们来看看Android 中的源码。从RadioGroup的check方法切入public void check(@IdRes int id) { // don't even bother if (id != -1 && (id == mCheckedId)) { return; } //如果上一个有选中的,先把上一个

2020-09-25 14:45:22 1170

原创 Android添加一个悬浮窗

在Android 添加悬浮窗需要两个了解两个知识点1. WindowWindow是一个抽象类,PhoneWindow是它的唯一实现类。Window实际上是View的直接管理者。Android中的所有视图都是通过Window来实现的。不管是Activity、Dialog还是Toast,它们的视图实际上都是附加在Window上的。View是Android中呈现视图的方式,但是View不能单独存在,必须附着在Window这个抽象的概念上。有视图的地方就有Window。2. WindowManage

2020-09-17 13:42:51 519

原创 两个APP通过AIDL 传递数据,实现进程间的回调

如何实时获取通信呢?比如我的一个下载任务,我需要实时获取的它下载进度?官方提供了 RemoteCallbackList 这个类,专门用于接口列表的繁琐工作,特别是用于 service 于 client 之间的回调。具体来说:跟踪一组已注册的IInterface回调,注意他们的底层需要时 binder 通信的,比如 aidl 的服务通过 Binder.DeathRecipien 绑定已注册的接口,当进程清除时,也能清除列表通过锁定底层接口从而处理多线程,以及一种线程安全的方式来迭代列表的快照而不持

2020-09-09 21:54:46 342

原创 Handler传值,并避免内存泄漏问题。

Handler:结合线程的消息队列来发送,处理Message对象和Runnable对象的工具Handler:1)新启动的线程发送消息 2)主线程获取,处理消息避免内存泄露的方式:声明静态内部内和弱引用//主线程来获取消息,并处理消息private static class MyHandler extends Handler { private final WeakReference<MainActivity> mainActivityWeakReference;

2020-09-07 11:30:30 75

原创 轻松理解Activity四种加载模式

Activity四种加载模式:(1).standard模式(2).SingleTop模式(3).SingleTask模式(4).SingleInstance模式一.standard模式:每次启动Activity都会去创建新的Activity实例而不创建新的Task, 并将新创建的Activity置于栈顶。二.SingleTop模式:若启动的Activity已经置于栈顶,将不会重新创建新的Activity实例,而是复用已有的实例。若启动的Activity不位于栈顶,则重新创建一个Activit

2020-09-04 15:36:26 116

原创 利用VideoView播放视频并解决播放前黑屏问题

VideoView 在播放视频前会有黑屏,点击播放时,黑屏才会消失。原因是videoview加载资源需要一定的耗时,我们可以利用MediaMetadataRetriever来解决黑屏问题。如何利用VideoView 播放视频呢?一、mainfest.xml给入读SD的权限二、绑定ViewMainfest.xml文件<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.and.

2020-09-04 15:19:18 2269

原创 Android 开机,自动启动一个Service

在Android手机或车机启动的过程中会触发一个Standard Broadcast Actionandroid.intent.action.BOOT_COMPLETED(只会触发一次),因此我们只需构建一个广播接收者来接收这个action来启动我们的Service即可。(1)在Mainfest.xml中配置权限、注册register及service<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="ht.

2020-09-04 14:59:31 243

原创 解析Json字符串的常用方法

解析Json字符串的常用方法:(1)利用JSONObject(2) 利用Gson一: 利用JSONObject : String mJson = "{\"content\":\"动力系统发生故障,请靠边停车\",\"data\":{\"VDCM_PullOver_St\":\"1\"},\"imgUrl\":\"string\",\"language\":\"chinese\",\"priority\":\"L0\",\"sound\":0,\"style\":0,\"tts\":0}";

2020-09-04 14:31:59 298

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除