![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
Marvel__Dead
这个作者很懒,什么都没留下…
展开
-
Content provider 中getPathSegments用途
Content provider 中getPathSegments用途--getPathSegments得到uri的path部分,并拆分,去掉"/",取到第一个元素(从第0个开始)。 //比如:content://"+FirstProvierMetaData.AUTHORIY+"/users /1" //getPathS转载 2017-06-11 22:03:42 · 620 阅读 · 0 评论 -
Intent.ACTION_VIEW
1 Intent.ACTION_VIEWString android.intent.action.VIEW用于显示用户的数据。比较通用,会根据用户的数据类型打开相应的Activity。比如 tel:13400010001打开拨号程序,http://www.g.cn则会打开浏览器等。代码1:Uri uri = Uri.parse("http://www.google.com"); //浏览器(转载 2017-06-02 08:54:12 · 4201 阅读 · 0 评论 -
Android AndroidManifest.xml文件的android:supportsRtl属性详解
转载请注明出处:http://blog.csdn.net/aa464971/article/details/51372204Android交流群:146262062更多开发文章:http://dyhdyh.comAndroid Studio新建工程的AndroidManifest文件里会有一个supportsRtl属性,并且默认是true,那这个属性到底有什么用呢,顾名思义就是“支持RTL”转载 2017-06-01 17:47:35 · 862 阅读 · 0 评论 -
[Android] 任意时刻从子线程切换到主线程的实现原理及加强版
========================================================作者:qiujuer博客:blog.csdn.net/qiujuer网站:www.qiujuer.net开源库:Genius-Android转载请注明出处:http://blog.csdn.net/qiujuer/article/details/41900879========转载 2017-06-06 11:24:25 · 835 阅读 · 0 评论 -
Android broadcast 相同优先级的顺序
From Andriod广播注册接收过程简析为了利于各个进程应用之间的通信,android提供了一个很方便的处理方式:广播机制。广播机制顾名思义,就是广播发送者无需判断具体某个接收者的存在,把广播发送出去,任务即完成。这样保证了有效通信的同时又最大限度的降低了android系统各个模块的耦合性。Android广播有两个很重要的要素: 1 广播 - 用于发送广播 有序广播转载 2017-06-06 10:21:50 · 1088 阅读 · 0 评论 -
onOptionsItemSelected返回值作用
根据API说明可以知道:boolean Return false to allow normal menu processing to proceed, true to consume it here.onOptionsItemSelected的返回值意思:true表示该方法执行完毕后,点击事件不会再向下一个事件处理方法传递了。false表示执行完该方法后,点击事件继续向下传递。有点像责任链的原创 2017-05-31 21:26:06 · 5671 阅读 · 0 评论 -
activity中的label含义
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.firelang.storedata" > <application android:allowBackup="t原创 2017-05-31 20:23:41 · 5211 阅读 · 0 评论 -
为什么不能直接在BroadCastReceiver中开一个线程执行耗时任务
BroadCastReceiver的生命周期非常简短:接收到广播→onReceive()→结束;所以在onReceive方法中,不要执行耗时的任务,如果该方法执行时间超过10秒,Android就会认为该程序无响应,并弹出ANR的对话框。如果必须执行耗时任务可以考虑,在onReceive中开启服务来执行,但不要使用线程,因为BroadCastReceiver的生命周期很短,可能出现子线程还没有结束,B转载 2017-06-05 12:35:22 · 3091 阅读 · 3 评论 -
线程和进程、程序、应用程序之间的关系
看到一种说法是“一个程序至少有一个进程,一个进程至少有一个线程”,这种把程序与进程,进程与线程的关系混淆的说法是错误的。程序(program)只能有一个进程,一个进程就是一个程序。有人说,我打开一个程序,比如chrome,有十多个进程呢,这是咋回事。那就是十多个程序,操作系统给他们分配了彼此独立的内存,相互执行不受彼此约束,分配同样时间的CPU。对于用户而言,他们是一个整体,我们通常称之为应用程序转载 2017-06-05 11:53:29 · 1735 阅读 · 0 评论 -
Android中的context使用(getApplicationContext和Activity.this的区别和使用)
1、首先两者的区别: 1、getApplicationContext()返回的是应用的上下文,隶属于整个应用,应用结束时才摧毁。 2、Activity.this返回到是Activity的上下文,隶属于Activiy,当Activity实例摧毁时它就跟着摧毁了。2、两者的使用: 1、getApplicationContext()是跟Windows无关的,所以不能做对话框的上下文,它可以做全局转载 2017-06-03 11:25:35 · 907 阅读 · 0 评论 -
自定义组件时 Binary XML file line Error inflating class 异常
今天在学习SurfaceView时偶然发现并解决了之前疑惑小编很久的问题:在Android开发中,制作自己的自定义组件的时候,总是会遇到Binary XML file line Error #**:Error inflating class com.**.**。而且这个问题还不总是出现,在我做某些自定义组件的时候就会出现,某些就不会。。。我当时的activity_main.xml文件中是这样定义转载 2017-05-29 19:18:02 · 2087 阅读 · 0 评论 -
android Spinner控件详解
Spinner提供了从一个数据集合中快速选择一项值的办法。默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值。上图显示的是Spinner常见的样式。这篇文章中我将讨论1.Spinner的基本用法 2.设置Spinner的Adapter (arrayadapter 和自定义BaseAdapter)3转载 2017-06-11 16:27:48 · 697 阅读 · 0 评论 -
Android 中关于 【Cursor】 类的介绍
Android 中关于 【Cursor】 类的介绍 使用过 SQLite 数据库的童鞋对 Cursor 应该不陌生,如果你是搞.net 开发你大可以把Cursor理解成 Ado.net 中的数据集合相当于dataReader。今天特地将它单独拿出来谈,加深自己和大家对Android 中使用 Cursor 的理解。关于 Cursor在你理解和使用 Android Cur转载 2017-06-11 13:26:03 · 518 阅读 · 0 评论 -
Android:自定义Sqlite数据库路径
Android:自定义Sqlite数据库路径 默认的sqlite数据库是放在/data/data/database目录下的,今天看腾讯云IM的demo发现再该路径下找不到它存放消息的数据库,找了下后发现居然是放在/data/data/files目录下的,虽然不知道为什么要放到这个目录,不过仔细想了下突然发觉假如把数据库放到转载 2017-06-10 17:58:19 · 1932 阅读 · 0 评论 -
getWritableDatabase()和getReadableDatabase()方法区别
http://blog.csdn.net/primer_programer/article/details/28513919原创 2017-06-09 15:05:50 · 549 阅读 · 0 评论 -
Andorid中操作数据库的insert的两种方法以及nullColumnHack
一、发现问题先看两种方法插入数据public void save(Person p){ SQLiteDatabase db = dbHelper.getWritableDatabase(); db.execSQL("insert into person(name,phone) values (?,?)", new Object[] { p.getName(), p.getPhone转载 2017-06-09 09:19:10 · 456 阅读 · 0 评论 -
android文件存储的4种方式
android文件存储的4种方式 Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPENDContext.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则转载 2017-06-08 18:59:20 · 777 阅读 · 0 评论 -
在BroadCastReceiver的onReceive方法中执行耗时操作的正确姿势到底是什么
经常听说在onReceive中执行耗时操作要开个Service,不要用子线程。 原因嘛,BroadCastReceiver默认情况下是在主线程执行的,所以它所在的进程就是这个应用的进程,而当用户退出这个应用后,应用所在的进程因为不包含任何活动组件(因为BroadCastReceiver的生命周期很短的嘛),所以当内存不够的时候,会被优先结束掉,所以导致其中的子线程无法完成自己执行的任务。转载 2017-06-08 14:59:44 · 2183 阅读 · 0 评论 -
Android【Service组件】【基本概念及使用】
概念1.Service是一个应用组件,它用来在后台完成一个时间跨度比较大的工作,且没有关联任何界面。着重理解这里的后台,去区分Service和线程的区别:Service是由主线程执行的,也就是创建主Activity的线程来执行Service,并且是后台执行,所以它是页面无关联的组件。最重要的是,如果我们想要在Service中执行耗时操作,那么就不能够占用主线程,我们需要开启分线程来执行!!!和线原创 2017-06-06 22:08:31 · 1039 阅读 · 0 评论 -
Android之Handler用法总结
Android之Handler用法总结 方法一:(java习惯,在android平台开发时这样是不行的,因为它违背了单线程模型)刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题 new Thread( new Runnable() { public void r转载 2017-06-05 11:36:00 · 805 阅读 · 0 评论 -
Android开发——关于onCreate的解读
当我们创建好一个Android项目后,打开src下的java文件时,我们会看到已经写好的类,但你知道这些都是什么含义么? 题外话:今天晚上陈老师给串讲了一下Android入门,有一个环节,我记得是这样问的:在AndroidManifest.xml文件中的<intent-filter>元素中有这么两句: <intent-filter> <action转载 2017-05-31 20:01:36 · 491 阅读 · 0 评论 -
Android --- 读取系统资源函数getResources()小结
开发中经常用到 getResources() 函数,开始不知道如何使用 res 或者 assets 的文件,现在终于知道了其用法,记录下来以便有朋友能使用到。概要说明:数据包package:android.content.res主要类:ResourcesInputStream openRawResource(int id) 获取资源的数据流,读取资源数据把一个图片资源,添加你的文件到你工程中res/转载 2017-05-31 18:47:14 · 2613 阅读 · 0 评论 -
Android五大常用布局
Android中常用的5大布局方式有以下几种:线性布局(LinearLayout):按照垂直或者水平方向布局的组件。帧布局(FrameLayout):组件从屏幕左上方布局组件。表格布局(TableLayout):按照行列方式布局组件。相对布局(RelativeLayout):相对其它组件的布局方式。GridLayout:按照自定义行列进行布局。1. 线性布局线性布局是Android开发中原创 2017-03-24 09:51:20 · 1402 阅读 · 0 评论 -
Android样式的开发:selector篇
转载地址上一篇详细讲了shape的用法,讲解了怎么用shape自定义矩形、圆形、线形和环形,以及有哪些需要注意的地方。不过,shape只能定义单一的形状,而实际应用中,很多地方比如按钮、Tab、ListItem等都是不同状态有不同的展示形状。举个例子,一个按钮的背景,默认时是一个形状,按下时是一个形状,不可操作时又是另一个形状。有时候,不同状态下改变的不只是背景、图片等,文字颜色也会相应改变。而要处转载 2017-03-23 21:03:25 · 915 阅读 · 0 评论 -
也谈layout_gravity和gravity的用法,以及layout_gravity失效
转载地址相信对于Android的初学者来说,大家都曾经被layout里这两个极其相似的属性迷惑过。简单使用一下搜索工具,我们就不难找到下面这样的答案:layout_gravity 表示组件自身在父组件中的位置 gravity 表示组件的子组件在组件中的位置看似很简单嘛~) 貌似大伙瞅一眼就明白了。今天我要说的就是这貌似瞅一眼就明白的道理。 为什么这么简单的道理,总有同转载 2017-03-23 20:15:04 · 1370 阅读 · 0 评论 -
这里介绍下state_enable和state_activated
state_enableandroid:state_enabled 如果值为true,当该组件能使用时显示该图片;false,当该组件不能使用时显示该图片。下面就来通过代码看看: <Button android:id="@+id/login" android:layout_width="wrap原创 2017-03-27 19:16:20 · 4837 阅读 · 0 评论 -
Android中的Selector的用法基本用法
Android中的Selector的用法 <?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:drawable转载 2017-03-27 18:31:16 · 990 阅读 · 0 评论 -
AndroidStudio安装报错
关于AndroidStudio的安装,其实很简单,我在这里主要介绍我的安装途中报错的问题:开始会说什么Junit报错??这个问题简单,直接百度都有答案。因为我的安装方式是把默认路径改了的,在上面问题之后还报了一个unable load adb错误。这个错误只需要在sdk manager里面安装一个 sdk platform tools就行了。因为sdk安装的默认服务器是Google所以在这里我们需要原创 2017-03-05 10:44:15 · 1008 阅读 · 0 评论 -
从零开始写第一个Android应用程序
学习Android准备知识安卓四层系统构成:第一层:最底层 Linux层第二层:函数库层 由C或者C++写第三层:Application FrameWork 应用框架层第四层:最上层 应用层在很久以前,安卓还是用的jvm虚拟机,但是好景不长,赚了钱的google因为版权问题被sun公司告了。sun公司提出和解的条件就是每年给他在这个项目上10%的收益。这怎么能够行呢??google每年都在原创 2017-02-28 21:56:31 · 5078 阅读 · 0 评论 -
Android的android:width和android:layout_width
看一个代码:<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" androi原创 2017-05-29 20:41:25 · 1701 阅读 · 0 评论 -
Android开发中 页面加载一张超大图片(561kb)时出现OOM
今天做项目,发现需要显示一张超大图片,处理过后,还有561Kb 加载的时候,就crash — OOM shortMsg:java.lang.OutOfMemoryError longMsg:java.lang.OutOfMemoryError: bitmap size exceeds VM budget stackTrace:java.lang.OutOfMemo转载 2017-05-30 17:49:01 · 874 阅读 · 0 评论 -
android raw与assets区别
android raw与assets区别 *res/raw和assets的相同点:1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。*res/raw和assets的不同点:1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要转载 2017-05-31 18:41:22 · 534 阅读 · 0 评论 -
理解android.intent.action.MAIN 与 android.intent.category.LAUNCHER
《第一行代码》中这么解释的: <action android:name="android.intent.action.MAIN" /> 和 <category android:name="android.intent.category.LAUNCHER" /> 表示 HelloWorldActivity是这个项目的主活动,在手机上点击应用图标,首先启动的就是这个活动。刚才看了一下sundy的转载 2017-05-31 18:25:30 · 15412 阅读 · 2 评论 -
Android中的Drawable资源
在Android应用中,常常会用到Drawable资源,比如图片资源等,在Android开发中我们是用Drawable类来Drawable类型资源的。Drawable资源一般存储在应用程序目录的\res\drawable目录下,当然依据分辨率的高低可以分别存储不同分辨率的资源到如下几个目录:\res\drawable-hdpi \res\drawable-ldpi \res\drawable转载 2017-05-31 15:33:45 · 797 阅读 · 0 评论 -
Drawable概念及对子类的互相转换,实现圆角图片,图片缩放等
一、Drawable相关概念1、Drawable就是一个可画的对象,其可能是一张位图(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个图层(LayerDrawable),我们根据画图的需求,创建相应的可画对象2、Canvas画布,绘图的目的区域,用于绘图3、Bitmap位图,用于图的处理4、Matrix矩阵Drawable的setBounds方转载 2017-05-31 15:10:06 · 537 阅读 · 0 评论 -
android中getSystemService详解
http://blog.sina.com.cn/s/blog_71d1e4fc0100o8qr.html http://blog.csdn.net/bianhaohui/article/details/6220135android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,比如MountService监听是否有SD卡安装及移除,Clipboa转载 2017-05-31 12:43:50 · 713 阅读 · 0 评论 -
Android LayoutInflater详解
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。 具体作用: 1、对于一个没有被载入或者想要动态载入的界面,都需要使用Layout转载 2017-05-31 12:05:54 · 328 阅读 · 0 评论 -
三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别
关于inflate参数问题,我想很多人多多少少都了解一点,网上也有很多关于这方面介绍的文章,但是枯燥的理论或者翻译让很多小伙伴看完之后还是一脸懵逼,so,我今天想通过三个案例来让小伙伴彻底的搞清楚这个东东。本篇博客我们不讲源码,只看使用。源码的解读会在下一篇博文中带来。inflate方法从大范围来看,分两种,三个参数的构造方法和两个参数的构造方法。在这两类中又有细分,OK,那我们就把各种情况都来演示转载 2017-05-31 11:58:51 · 610 阅读 · 0 评论 -
[Android] Android开发优化之——对Bitmap的内存优化
在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是Android应用开发中比较重要的内容。 1) 要及时回收Bitmap的内存Bitmap类有一个方法recycle(),从方法名可以看出意思是回收。这里就有疑问了,Android系统有自转载 2017-05-30 18:07:08 · 785 阅读 · 0 评论 -
安卓拨号程序
这里介绍下,我们一般写一些小程序步骤:画UI根据UI写业务逻辑测试大型程序的话开始就不能够画UI了,而是要需求分析。写一个拨号器安卓应用程序:首先创建项目,然后一路Next。修改界面显示的字符串为:”请输入手机号:”后就开始配置主界面的布局了。 配置布局在activity_main.xml中进行。这里注意几个参数:android:layout_width是当前控件的宽,它有如下几个属性值:原创 2017-03-01 11:44:50 · 976 阅读 · 0 评论