Android经验
VBallack13
这个作者很懒,什么都没留下…
展开
-
CountDownTimer的使用以及解决Cancel无效的问题
在做项目的时候,需要一个倒计时的功能。查阅资料,Android提供了一个倒计时的功能 CountDownTimer。官方提供的用法如下: * Example of showing a 30 second countdown in a text field: * * <pre class="prettyprint"> * new CountDownTimer(30000, 1000) { *原创 2015-06-23 14:48:01 · 35349 阅读 · 7 评论 -
检测设备是否支持Google Play服务
在使用Google Play服务之前,需要判断当前当前的设备是否支持Google Play服务,Google官方提供了两种方法来进行判断一、使用GoogleAPiClient类访问Google Play服务功能(被建议使用)在使用Google Play服务的地方实现 GoogleApiClient.OnConnectionFailedListener,实现回调方法onConnectionFailed原创 2015-12-08 19:24:29 · 17161 阅读 · 0 评论 -
Google支付(In-app Billing)接入
该文档基于第3版。应用内结算简介一、概述使用应用内结算(In-app Billing)时,我们的应用通过相应的API来访问In-app Billing服务。应用不直接与Google Play服务器通信,而是通过进程间通信(IPC)向Google Play发送结算请求并接收Google Play返回的响应。In-app Billing在使用之前需要注意以下几点:只能用来销售数字内容,不能销售实体商品原创 2015-12-16 20:44:56 · 31580 阅读 · 5 评论 -
Android平台接入Facebook登录
官方教程地址: https://developers.facebook.com/docs/android/getting-started开发环境为Android Studio,官方要求SDK最低版本为“API 15: Android 4.0.3”。一、创建应用1、激活账号按照要求创建APP,生成appId。注意:在填写APP名称的时候,不能包含任何有关facebook的名字或简写,否则无法通过。2原创 2015-11-13 17:21:43 · 28806 阅读 · 14 评论 -
No resource found that matches the given name after upgrading to AppCompat v23
在SDKmanger中更新了extra为最新版之后,通过android studio创建新的项目,会出现错误信息:D:\AndroidStudioProjects\DemoTest\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.1.0\res\values-v23\values-v23.xmlErr原创 2015-10-29 16:28:00 · 845 阅读 · 0 评论 -
android:configuration 处理屏幕旋转和语言切换等问题
当APP设置为屏幕可旋转的时候,会发现在旋转屏幕的过程中,用户在EditText等控件中输入的内容会随之消失,这种情况同样发生在切换系统语言的时候。打印APP的生命周期,当进行屏幕方向转换的时候,生命周期如图:屏幕方向的转换,引起了Activity的重建,重新执行了onCreate( )方法。 由于数据没有保存,在Activity重建之后,数据丢失。解决方法:一、防止Activity重建在Andr原创 2015-11-12 16:22:31 · 6472 阅读 · 1 评论 -
精简google-play-services.jar的方法(解决65536问题的应急方案)
因为项目功能的需求,需要引入较多的第三方的jar包,但在打包过程中,发生如下错误:Conversion to Dalvik format failed:Unable to execute dex: method ID not in [0, 0xffff]: 65536应用中的方法数超过了最大限制,这是因为单个DEX文件可被引用的方法总数(自己开发的代码以及所引用的Android框架、类库的代码)被限原创 2015-10-22 16:41:45 · 9710 阅读 · 5 评论 -
官方推荐:精简google-play-services.jar的方法(解决65536问题的应急方案)
之前写过关于精简google_play_services.jar的方法,是参考自github的,详见: http://blog.csdn.net/liuweiballack/article/details/49335529从google-play-services 6.5开始,Google官方提供了按照功能打包API的方法,其步骤如下(以添加google+登录为例):1、在工程的build.gra原创 2015-11-11 20:40:35 · 22644 阅读 · 10 评论 -
Google反编译新工具——Enjarify
Enjarify是Google最近出的一款反编译工具,它可以将Dalvik字节码转换成相对应的Java字节码。Enjarify使用起来相当方便,虽然没有可视化的图形界面,但是Enjarify的命令却十分简单。Enjarify是一个基于Python3的程序,所以在使用Enjarify之前,需要预装Python3的解释器,官方推荐pypy3。在Windows下使用时,Enjarify提供了一个批处理文件原创 2015-09-09 20:36:51 · 11641 阅读 · 3 评论 -
Android重启当前Activity以及Activity生命周期的变化
重启Activity的方法private void reStartActivity() { Intent intent = getIntent(); finish(); startActivity(intent);}注意 finish()和startActivity(intent)的顺序不能错误。Activity生命周期变化启动APP:程序刚启动时,会按照顺序依次执行:on原创 2015-08-06 11:34:41 · 14401 阅读 · 1 评论 -
Android生命周期在不同版本中的表现形式
Android的生命周期在不同版本的SDK中可能表现出不一样的形式,现在用Android4.4和Android2.3做两个对比。启动APP(左图为4.4,右图为2.3): 退出APP: 运行时点击HOME键: 点击HOME之后重新回到APP: APP运行时锁屏: 从锁屏回到APP: 重点在锁屏时,2.3和4.4表现出来不同的生命周期。这两点需要特别注意,如果需要程原创 2015-07-23 18:07:14 · 631 阅读 · 1 评论 -
Activity的四种launchMode以及onNewIntent()的调用时机
Android的Activity一共有四种launchMode:standard、singleTop、singleTask、singleInstance,在AndroidManifest.xml中用来指定Activity的启动方式。一、standardactivity的默认启动方式,未指定android:launchMode的属性时默认为standard。public class MainActiv原创 2015-08-27 20:17:25 · 2706 阅读 · 0 评论 -
Android中Notification捕捉点击事件的替代方式
在处理程序中的通知消息时,一般都是用Notification类来处理,通过设置PendingIntent来处理点击通知之后的动作。与一般的Intent不同,PendingIntent表示即将要执行的动作,是在用户点击消息之后才进行处理,它里面保存了一个Intent用来执行跳转的操作。但是有一些需求,要求在用户点击通知之后,还需要执行一些其他的操作,并非单纯的进行activity之间的跳转。因此需要对原创 2015-08-26 20:08:43 · 34920 阅读 · 9 评论 -
android:includeFontPadding的使用:清除TextView字体周边空白
在设置界面布局的时候,设计师会给一张标注了尺寸的UI设计图,如果在UI中包含了TextView空间的话,会发现即使完全按照标注的尺寸来做,最终的显示效果和设计图还是有差异。打开开发者模式中的布局边界,再观察APP的界面可以发现,在TextView中字体与TextView的边界是有一定的距离的,在720px的图中大概有2px的边界留白。就是这些默认的留白导致UI出现偏差。在TextView提供的属性设原创 2015-08-24 23:50:37 · 38189 阅读 · 5 评论 -
Android 4.0+ 系统中SystemBars的适配问题
*以下关于获取Navigation Bar是否存在和如何获取高度参考自: http://blog.csdn.net/lnb333666/article/details/41821149 Android 检查设备是否存在 导航栏 NavigationBar***前不久做一个APP,需要在代码中对布局的高度进行设置,于是使用以下代码设置其高度://通过可视区域进行判断Rect rect =原创 2015-06-14 17:50:11 · 1176 阅读 · 0 评论 -
ListView中为解决CheckBox重用而引入的新问题
ListView为了优化滑动速度,经常涉及到控件重用的问题,已经选中的CheckBox在滑动消失之后,会导致最新出现的Item由于复用的问题,与消失的Item中CheckBox选中状态一致(实际未选中)。 一般通过设置一个list列表用来存储选中item的对象的唯一标识符(可以为id或者position),在getView()中判断list中是否存在当前的id或者position。存在则设置原创 2015-06-12 00:01:55 · 3124 阅读 · 0 评论 -
Android 软键盘事件imeOptions响应
在android发开过程中,有时候需要对EditText的软键盘进行监听。 当点击软键盘回车位置按键的时候,需要实现 完成、前进、下一项、搜索、发送或其他功能,这就需要开发者对软键盘回车的点击事件进行捕捉。 比如在登录界面,需要用户在输入密码之后点击软键盘回车直接登录,不必再去点击屏幕上的登录按钮。我们就可以在密码使用的EditText设置 android:imeOptions=”actionD原创 2015-07-01 11:58:39 · 40390 阅读 · 4 评论 -
Android 5.0使用android:onClick属性出现崩溃的原因及解决方案
问题及表现在项目中,对Button设置点击事件监听时,大多数情况下还是习惯使用setOnClickListener设置监听,但是最近发现当在布局文件中同时使用了android:theme和android:onClick属性时,在响应点击事件时程序会发生crash,发生Crash的设备为Android 5.0及以上(7.0未测试),不限机型。在Android 5.0和Android 6.0上发生cra原创 2016-11-14 15:08:49 · 7228 阅读 · 0 评论