
Android
沐恩_
自强不息,厚德载物
展开
-
Android xml html 转义字符
+--------+----------------------------+--+--+--+| Symbol | Equivalent HTML Entity | | | |+--------+----------------------------+--+--+--+| > | > | |...原创 2019-09-19 13:31:10 · 602 阅读 · 0 评论 -
Android显示横幅样式通知
Android可以在5.0系统以上显示横幅通知,代码如下:private void showNotification() { NotificationManager notifyManager = (NotificationManager) mBleService.getSystemService(Context.NOTIFICATION_SERVICE); Notific原创 2018-02-05 17:02:31 · 10196 阅读 · 0 评论 -
判断Android程序前后台切换的几种方法
Android在前后台切换时,我们可能需要做一些处理:发送通知栏消息,提示APP在后台运行;或者我们需要暂停程序里的某些线程,或者让线程池的执行时间降低,以保证较高的内存,而避免被回收。那么我们有几种方式可以来判断呢?思路1:在一个service里,使用一个线程,通过 ActivityManager.RunningAppProcessInfo轮询检测。public转载 2018-02-05 16:02:19 · 435 阅读 · 0 评论 -
Android APP必备高级功能,消息推送之MQTT
转载至:http://blog.youkuaiyun.com/qq_17250009/article/details/52774472本文已授权微信公众号《鸿洋》原创首发,转载请务必注明出处。1. Android端实现消息推送的几种方式轮询:客户端定时向服务器请求数据。伪推送。缺点:费电,费流量。拦截短信消息。服务器需要向客户端发通知时,发送一条短信,客户端收到特定短信之后,先转载 2018-01-09 10:26:30 · 299 阅读 · 0 评论 -
使用android.view.TouchDelegate扩大View的触摸点击区域
http://blog.youkuaiyun.com/tongcpp/article/details/23450975Android4.0设计规定的有效可触摸的UI元素标准是48dp,转化为一个物理尺寸约为9毫米。7~10毫米,这是一个用户手指能准确并且舒适触摸的区域。如下图所示,你的UI元素可能小于48dp,图标仅有32dp,按钮仅有40dp,但是他们的实际可操作焦点区域最好都应达到转载 2018-01-04 11:10:59 · 988 阅读 · 0 评论 -
android clipRect Op.xxx各个参数理解
https://www.2cto.com/kf/201502/377170.html有点小啰嗦的一篇学习笔记,可以直接看最后得出的结论:前面的各种图片和说明都是为最后的结论服务的1)剪切:和平常画图工具剪切的作用一样,在画布上剪切一个区域,比如剪切一个Rect区域,画布canvas其余的部分都丢掉,之后所有的画图都在这个Rect区域内进行(如果不涉及save和restore转载 2018-01-11 15:46:17 · 619 阅读 · 0 评论 -
Android简单自定义圆形和水平ProgressBar
http://blog.youkuaiyun.com/mad1989/article/details/38042875ProgressBar简介继承于View类,直接子类有AbsSeekBar和ContentLoadingProgressBar,其中AbsSeekBar的子类有SeekBar和RatingBar,可见这二者也是基于ProgressBar实现的。1转载 2017-12-26 16:13:02 · 2270 阅读 · 0 评论 -
利用onNewIntent避免Activity之间的跳转传值多次实体化
https://www.cnblogs.com/fuyouG/p/fuyou-G-entryName.htmlonNewIntent需要注意的是:1、通过Intent启到一个Activity的时候,就算已经存在一个相同的正在运行的Activity,系统也会创建一个新的Activity实例。为了不让Activity实例化多次,我们需要通过在AndroidManifest.xm转载 2017-11-24 14:20:06 · 252 阅读 · 0 评论 -
Android中Activity启动模式详解
http://www.cnblogs.com/fanchangfa/archive/2012/08/25/2657012.html 在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。 Android总Activity的启动模式分为四转载 2017-11-24 14:19:12 · 221 阅读 · 0 评论 -
Activity的四种启动模式和onNewIntent()
http://blog.youkuaiyun.com/linghu_java/article/details/17266603在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。 Android总Activity的启动模式分为四种:Acti转载 2017-11-24 14:18:10 · 224 阅读 · 0 评论 -
service的onBind,onRebind,onUnbind方法
http://blog.youkuaiyun.com/a626361893/article/details/53230771最近给app添加计步的功能,开一个service,然后用ipc进程间通信,重新复习了一下android四大组件之一的service;先来看service的生命周期:service的生命周期,从它被创建开始,到它被销毁,可以有两条不同的路径: A started s转载 2017-12-04 14:34:43 · 13671 阅读 · 1 评论 -
android studio2.3以后给apk签名打包后安装失败的问题[INSTALL_PARSE_FAILED_NO_CERTIFICATES]
http://blog.youkuaiyun.com/builder_taoge/article/details/70158690 自己的Android studio(windows平台上)刚刚更新到2.3版本,在没有充分了解它的新变化的情况下,使用的时候难免会遇到一些问题,比如gradle的问题可能是大家最常见的,不过解决的一般思路和之前(例如2.1更新到2.2之类的)没太大区别,本转载 2017-11-29 12:31:06 · 338 阅读 · 0 评论 -
Android Studio 指定签名证书文件
http://blog.youkuaiyun.com/u011987034/article/details/508176761.先参照Android Studio中创建keystore生成指定的证书文件。2.在app/build.gradle文件中增加 signingConfigs字段:如下所示:123456789101112131415161718192021转载 2017-11-29 12:23:53 · 1327 阅读 · 0 评论 -
Android Studio中创建keystore
一直在Eclipse中开发Android,切换到Android Studio 中之后,各种不习惯。基本的创建keystore文件的操作也是找了半天才找到。1.点击Build ,在下拉框中选择 "Generate Signed APK"2.选择 "Create new"3.按照里面的内容填写即可,注意最后文件的扩展名变为".jks",而不是以前的".keystore".转载 2017-11-29 12:23:01 · 930 阅读 · 0 评论 -
App的打磨之路
http://www.huwei.tech/2016/07/24/App%E7%9A%84%E6%89%93%E7%A3%A8%E4%B9%8B%E8%B7%AF/前言:俗话说磨刀不误砍柴工,一个优秀的产品从一个不错的点子直到用户的手中,是需要一个团队不遗余力协同合作不断打磨出来的;同样,一个好的App除正常的代码编写外,还需要经过其他方面的不断打磨才能正式交互,最终到达用转载 2017-11-03 15:43:59 · 564 阅读 · 0 评论 -
Android BLE总结
http://blog.youkuaiyun.com/shlearry/article/details/50887056先来介绍几个类 :BluetoothGatt,BluetoothGattService,BluetoothGattCharacteristic,BluetoothGattCallback官方介绍网址是 https://developer.android.com/refer转载 2017-10-25 18:45:34 · 429 阅读 · 0 评论 -
TabLayout详细用法
http://blog.youkuaiyun.com/wu371894545/article/details/65936966TabLayout是属于容器控件, 提供水平显示Tab的效果. 常常和ViewPager配合使用. 我将全面地讲解其用法. 反正我是没看过比我还详细的了.演示添加依赖这是Android Design 包下的类, 该包是Andr转载 2017-11-10 15:00:09 · 550 阅读 · 0 评论 -
Android 数据存储五种方式使用与总结
1、概述 Android提供了5种方式来让用户保存持久化应用程序数据。根据自己的需求来做选择,比如数据是否是应用程序私有的,是否能被其他程序访问,需要多少数据存储空间等,分别是: ① 使用SharedPreferences存储数据 ② 文件存储数据③ SQLite数据库存储数据④ 使用ContentProvider存储数据⑤ 网络存储数据 And转载 2018-01-30 13:15:20 · 632 阅读 · 0 评论 -
gson将json转为map的时候,出现类型转换异常的解决方法
Type type = new TypeToken<Map<String, Object>>() { }.getType(); Map<String, Object> dataMap = gson.fromJson(json, type);调用以上代码把json串转换为map时,如果json串中包含0、1等int类型的内容,map中将会转...原创 2018-03-12 12:32:53 · 5310 阅读 · 0 评论 -
Android中notification通知的Demo——震动,铃声,Led灯闪烁
这里要注意几点:1. notification的各种方法及参数的应用2. 旧版本的SDK和新版本的SDK消息推送的写法是有些不一样的 1. notification的各种方法及参数的应用 (1)消息提示音 /** * sound属性是一个 Uri 对象。 可以在通知发出的时候播放一段音频,这样就能够更好地告知用户有通知到来. * 如:手机的/system/media/audio/ring...转载 2018-03-22 09:48:08 · 4199 阅读 · 0 评论 -
Updating a ProgressBar in a RecyclerView
I have a RecyclerView. In it, the items have a standard layout - one TextView and one ProgressBar. Items are added to the recyclerview at runtime. Whenever an Item is added, an AsyncTask is started wh...转载 2019-08-15 09:33:47 · 779 阅读 · 1 评论 -
android Intent打开各种类型文件(PDF、word、excel、ppt、chm)
package com.im.qtec.utils;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.os.Build;import android.support.v4.content.FileProvider;import andr...原创 2019-07-16 15:00:34 · 3663 阅读 · 3 评论 -
Android中清除应用数据的方法
Android 中应用的数据分为内置储存的和外置储存,默认是保存在内置储存的,所以一般清除内置储存的就行了。使用这个工具类:import java.io.File;public class DataCleanManager { public static void DeleteFile(File file) { if (file.exists() == false...转载 2019-07-12 17:05:42 · 9475 阅读 · 0 评论 -
Android中双击、三击以及多击的判定
直接借鉴谷歌大神的写法,非常简洁明了 //存储时间的数组 long[] mHits = new long[2]; public void doubleClick() { // 双击事件响应 /** * arraycopy,拷贝数组 * src 要拷贝的源数组 * srcPos...转载 2019-07-12 17:04:43 · 631 阅读 · 0 评论 -
Android中Dialog设置外部点击事件
一、点击外部取消显示一般来说,在android中用到的都是设置dialog点击外部取消dialog的显示,这个直接设置setCanceledOnTouchOutside方法即可。public void setCanceledOnTouchOutside(boolean cancel) { if (cancel && !mCancelable) { ...转载 2019-07-12 17:03:25 · 5314 阅读 · 0 评论 -
Android:Java代码实现APP普通安装卸载和静默安装卸载
两者差异 执行普通安装、卸载,将会弹出确认安装、卸载的提示框,与在文件管理器中打开APK文件实现安装、卸载相同。 执行静默安装、卸载,正常状态下,前台无任何反应,APP在后台完成安装和卸载。该功能一般也被称为“后台安装”,实现该功能需要ROOT。普通安装核心代码:Intent intent = new Intent(Intent.ACTION_VIEW);inten...转载 2019-07-01 17:03:18 · 1887 阅读 · 0 评论 -
AsyncQueryHandler 批量添加联系人
AsyncQueryHandler: 官方解释是一个异步帮助类(A helper class to help make handling asynchronousContentResolverqueries easier.) 。这个类的主要作用就是异步对DB数据库进行操作,加快其数据处理的速度(这个非常重要,特别是大容量的数据处理时,例如几千联系人的数据读取,按正常的处理速度会非常的慢,...转载 2019-05-06 16:00:18 · 323 阅读 · 0 评论 -
AlertDialog不显示文字
title: AlertDialog不显示文字date: 2017-06-27 10:33:27tags: problems问题描述 在自己小米5S安卓6.0上测试,发现弹框只有按钮没有文字,title和message都不显示,但是位置还是预留了的,很奇怪。解决办法: AlertDialog.Builder builder; ...转载 2019-04-25 14:48:06 · 910 阅读 · 0 评论 -
RecyclerView checkBox状态问题
前言最近碰到的问题,直接上图解决方案设置checkBox监听器为空及有个表来记录checkBox的状态在@Override 的 onBindViewHolder方法里面这样写就行 @Override public void onBindViewHolder(final RecyclerViewAdapter.ViewHoder holder, final ...转载 2019-04-25 13:53:43 · 891 阅读 · 0 评论 -
Java编译时注解处理器(Annotation Processor)详解
上篇文章我们使用注解+反射实现了一个仿ButterKnife功能的示例。考虑到反射是在运行时完成的,多少会影响程序性能。因此,ButterKnife本身并非基于注解+反射来实现的,而是用Annotation Processor在编译时处理注解的。Annotation Processor什么呢?本篇文章就来认识下Annotation Processor吧。Annotation Processor...转载 2019-03-12 10:32:12 · 14569 阅读 · 0 评论 -
Android中实现全屏、无标题栏的两种办法
在进行UI设计时,我们经常需要将屏幕设置成无标题栏或者全屏。要实现起来也非常简单,主要有两种方法:配置xml文件和编写代码设置。1.在xml文件中进行配置在项目的清单文件AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可。实现全屏效果:android:theme="@android:style/Theme...转载 2018-08-22 14:48:24 · 645 阅读 · 0 评论 -
FileProvider无法获取外置SD卡问题解决方案 | Failed to find configured root that contains
随着Android版本越来越高,Android官方对用户数据保护力度也越来越大。Android提供FileProvider类来供应用之间共享数据。如:<paths xmlns:android="http://schemas.android.com/apk/res/android"> <files-path name="my_images" path="image...转载 2018-08-15 15:52:53 · 752 阅读 · 0 评论 -
TextView代码设置drawable
LayerDrawable drawable = (LayerDrawable) getResources().getDrawable(R.drawable.shape_lock_battery); drawable.setLayerInset(1, 6, (int) batteryPix, 6, 6); drawable.setBounds(0, 0, drawable.get...原创 2018-08-15 09:11:07 · 1326 阅读 · 0 评论 -
Android中shape属性详解
一、简单使用刚开始,就先不讲一堆标签的意义及用法,先简单看看shape标签怎么用。1、新建shape文件首先在res/drawable文件夹下,新建一个文件,命名为:shape_radius.xml内容是这样的:(先不需要理解,先看shape怎么用)[html] view plaincopy<?xml version="1.0" encoding="utf-8"?&...转载 2018-07-31 16:45:31 · 210 阅读 · 0 评论 -
如何在Android8.0系统下通过Intent安装apk
http://www.czhzero.com/2016/12/21/how-to-install-apk-on-Android7-0/ 1、7.0系统使用FileProvider进行apk安装Android系统升级到7.0之后,安全性提高了不少,过去我们通常是使用这样的代码进行apk的安装操作。 Intent intent = new Intent(Intent.ACTIO...转载 2018-06-21 11:19:32 · 2707 阅读 · 0 评论 -
如何正确判断 Android应用是第一次启动的靠谱方案(短篇)
https://segmentfault.com/a/1190000003959045如何正确判断 Android应用是第一次启动的靠谱方案(短篇)androidheartFollower 2015年11月06日发布3.4k 次浏览 前言:之前一直没有做Andro转载 2017-11-10 10:01:25 · 1300 阅读 · 0 评论 -
android ble常见问题收集
http://www.jianshu.com/p/c7639e8b67871.oppo ble难扫描的问题oppo 手机只扫描一次,所以经常扫不到修改方式:开启线程1秒执行一次scanLeDevice(false);scanLeDevice(false);scanLeDevice(true);Runnable runnable=newRunnable() {@Overridepubli转载 2017-10-24 09:29:46 · 1186 阅读 · 0 评论 -
adb操作命令详解及大全
说到 ADB 大家应该都不陌生,即 Android Debug Bridge,Android调试桥,身为 Android 开发的我们,熟练使用 ADB 命令将会大大提升我们的开发效率, ADB 的命令有很多,今天就来总结下我在开发常用到的一些 ADB 命令。查看版本ADB 的安装这里就不多说了,输入以下命令有如下提示就证明你环境ok,否则自行网上搜索解决下。$ adb versio转载 2017-07-13 16:29:32 · 302 阅读 · 0 评论 -
小米手机报Installation failed with message Failed to establish session的解决办法
http://blog.youkuaiyun.com/rookie_small/article/details/60869669小米手机 报Installation failed with message Failed to establish session错的解决办法用android studio 运行程序时一直报“Installation failed with messag转载 2017-07-13 14:31:30 · 313 阅读 · 0 评论 -
RecyclerView notifyDataSetChanged不起作用
一般listview设置完data后调用notifyDataSetChanged便可刷新布局界面,然而recycleview调用这个方法却没有任何反应。对于很多不熟悉recycleview的话很容易躺坑,折腾了好久。在此记录下。一、recycleview刷新:设置相关属性:recycleview.setHasFixedSize(true);data设置完后需要这样调用:转载 2017-06-23 15:08:08 · 1037 阅读 · 0 评论