- 1. SurfaceView介绍 通常情况程序的View和用户响应都是在同一个线程中处理的,这也是为什么处理长时间事件(例如访问网络)需要放到另外的线程中去(防止阻塞当前UI线程的操作和绘制)。但是在其他线程中却不能修改UI元素,例如用后台线程更新自定义View(调用View的在自定义View中... 1. SurfaceView介绍 通常情况程序的View和用户响应都是在同一个线程中处理的,这也是为什么处理长时间事件(例如访问网络)需要放到另外的线程中去(防止阻塞当前UI线程的操作和绘制)。但是在其他线程中却不能修改UI元素,例如用后台线程更新自定义View(调用View的在自定义View中...
- 之前一篇博客初试了Android6.0系统的动态权限申请,成功之后开始思考将权限申请功能封装以供更加方便的调用。 查阅6.0系统权限相关的API,整个权限申请需要调用三个方法: 1. ContextCompat.checkSelfPermission() 检查应用是否拥有该权限,被授权返回值为PERMISSION_GRANTED,否则返回PERM... 之前一篇博客初试了Android6.0系统的动态权限申请,成功之后开始思考将权限申请功能封装以供更加方便的调用。 查阅6.0系统权限相关的API,整个权限申请需要调用三个方法: 1. ContextCompat.checkSelfPermission() 检查应用是否拥有该权限,被授权返回值为PERMISSION_GRANTED,否则返回PERM...
- import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.text.TextUtils; import... import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.text.TextUtils; import...
- 1、上代码 activity_main.xml文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_... 1、上代码 activity_main.xml文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_...
- Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益。那它都做什么呢?它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policy violation),你将获得警告,其包含了一个栈trace显示你的应用在何处发生违例。你可以强制用警告代替崩溃(crash),也可以仅... Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益。那它都做什么呢?它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policy violation),你将获得警告,其包含了一个栈trace显示你的应用在何处发生违例。你可以强制用警告代替崩溃(crash),也可以仅...
- 使用cmd命令查看logcat 使用adb logcat命令可查看android系统和应用的log adb logcat //显示全部日志 adb logcat > c:\test.log //将日志输出保存到文件test.log logcat日志中的优先级/tag标记: android输出的每一条日志都有一个标... 使用cmd命令查看logcat 使用adb logcat命令可查看android系统和应用的log adb logcat //显示全部日志 adb logcat > c:\test.log //将日志输出保存到文件test.log logcat日志中的优先级/tag标记: android输出的每一条日志都有一个标...
- 1 问题 android签名除了我们用android studio build->generate Signed Apks ... 我们还可以自己用build.gradle构建,容易忘记还是记录下来 2 配置如下 1) build.gradle文件如下 android { ... signingConfigs ... 1 问题 android签名除了我们用android studio build->generate Signed Apks ... 我们还可以自己用build.gradle构建,容易忘记还是记录下来 2 配置如下 1) build.gradle文件如下 android { ... signingConfigs ...
- FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET:重置该task时清除该activity 这个标志将会非常有用当你想在你的应用中有个逻辑切换,例如,一个 e-mail的应用可能用于一个命令去显示附件,这个命令启动一个图片浏览的activity去显示附件,这个activity是e-mail应用的一部分,因为它是用户完成这件事情的一部分。但是,当用户离开... FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET:重置该task时清除该activity 这个标志将会非常有用当你想在你的应用中有个逻辑切换,例如,一个 e-mail的应用可能用于一个命令去显示附件,这个命令启动一个图片浏览的activity去显示附件,这个activity是e-mail应用的一部分,因为它是用户完成这件事情的一部分。但是,当用户离开...
- 对于用Context.startService()启动的service生命周期为onCreate()-onStartCommand()-onDestroy();如果多次用context.startService启动service只会多次执行onStartCommand()方法。根据音乐播放器的特性使用Context.startService()调用在合适不过了。 publi... 对于用Context.startService()启动的service生命周期为onCreate()-onStartCommand()-onDestroy();如果多次用context.startService启动service只会多次执行onStartCommand()方法。根据音乐播放器的特性使用Context.startService()调用在合适不过了。 publi...
- 今天用handler.post(Runnable);的时候出现了android.os.NetworkOnMainThreadException Runnable里面使用的访问网络请求,网络请求是不可以放在主线程里面的,所以出现了这个问题 因为我想执行 handler.post(runnable);Runnable runnable = new Runnable(... 今天用handler.post(Runnable);的时候出现了android.os.NetworkOnMainThreadException Runnable里面使用的访问网络请求,网络请求是不可以放在主线程里面的,所以出现了这个问题 因为我想执行 handler.post(runnable);Runnable runnable = new Runnable(...
- 1 问题 给控件添加水纹波效果,点击起来像点中了,不然效果太粗糙了,没反应。 2 实现 给控件添加如下属性 android:background="?android:attr/selectableItemBac... 1 问题 给控件添加水纹波效果,点击起来像点中了,不然效果太粗糙了,没反应。 2 实现 给控件添加如下属性 android:background="?android:attr/selectableItemBac...
- 1、问题 我们要在一个类里面变量或者函数变化需要改变另外一个类里面的东西,这个时候java里面除了接口回调之外,我们还可以用注册Handler来实现 2、代码实现 1、MainActivity.java文件 package com.example.handlercallback; import andro... 1、问题 我们要在一个类里面变量或者函数变化需要改变另外一个类里面的东西,这个时候java里面除了接口回调之外,我们还可以用注册Handler来实现 2、代码实现 1、MainActivity.java文件 package com.example.handlercallback; import andro...
- 我们知道,Android系统的各个模块提供了非常强大的功能(比如电话,电源和设置等),通过使用这些功能,应用程序可以表现的更强大,更灵活。不过,使用这些功能并不是无条件的,而是需要拥有一些权限。接下来,我们就开始讲解另一个非常重要的知识点——应用程序权限声明,其中主要包括应用程序的权限声明,自定义应用程序的访问权限和SDK版本限定。 1.<uses-permis... 我们知道,Android系统的各个模块提供了非常强大的功能(比如电话,电源和设置等),通过使用这些功能,应用程序可以表现的更强大,更灵活。不过,使用这些功能并不是无条件的,而是需要拥有一些权限。接下来,我们就开始讲解另一个非常重要的知识点——应用程序权限声明,其中主要包括应用程序的权限声明,自定义应用程序的访问权限和SDK版本限定。 1.<uses-permis...
- 1 问题 Fatal Exception: android.util.AndroidRuntimeException: android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed at android.w... 1 问题 Fatal Exception: android.util.AndroidRuntimeException: android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed at android.w...
- taskAffinity 和 FLAG_ACTIVITY_NEW_TASK都是和activity启动时是否需要新建一个task有关,我们分四种情况看一下这两个标志对启动activity的影响:(前提:从MainActivity中启动ActivityA) 1)、两个标志都不设置 2)、有FLAG_ACTIVITY_NEW_TASK 3)、无FLAG_ACTIVI... taskAffinity 和 FLAG_ACTIVITY_NEW_TASK都是和activity启动时是否需要新建一个task有关,我们分四种情况看一下这两个标志对启动activity的影响:(前提:从MainActivity中启动ActivityA) 1)、两个标志都不设置 2)、有FLAG_ACTIVITY_NEW_TASK 3)、无FLAG_ACTIVI...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中 -
一个AI团队帮你写代码:华为云码道Agent Space实战2026/06/25 周四 19:00-21:00
张翰文-华为云码道工程师/郭英旭-青软创新科技集团股份有限公司 软件架构师
本场直播聚焦华为云码道Agent Space两大模式:研发办公、代码开发,亲身体验从需求到代码的AI自动化能力。实操演示基于华为 CodeArts CLI,依托 OpenSpec 规格体系从零搭建业务项目。
回顾中
热门标签