android知识杂记(二)
记录项目中的android零碎知识点,用以备忘。
- AsyncQueryHandler
- 继承与handler,可以用于处理增删改(ContentProvider提供的数据)
- 例如:query = new AsyncQueryHandler(getContentResolver());
包括方法:startQuery、startInsert、startDelete、startUpdate:
Uri uri = Sms.CONVESATION_URI;
query.startQuery(0, null, uri, CONVERSATION_PROJECTION, null, null, "sms.date desc");
- windowManager.addView
- 可以实现悬浮窗,参数为两个:前者为视图、后者为参数,参数中的WindowManager.LayoutParams.type标示该弹出视图的类型:
比较常用的有:TYPE_SYSTEM_ALERT 系统提示。它总是出现在应用程序窗口之上
TYPE_APPLICATION 普通应用功能程序窗口- 也可以在参数中给新增视图添加动画,用.windowAnimations = R.style.anim_view;同时在style.xml里定义anim_vew
<style name="anim_view">
<item name="@android:windowEnterAnimation">@anim/in</item> //在anim文件夹中定义
<item name="@android:windowExitAnimation">@anim/out</item>
</style>
- 部分手机,如小米对addview有约束(权限控制),需要适配;
- 手动打开或影藏输入法
EditText有焦点(focusable为true)阻止输入法弹出
editText=(EditText)findViewById(R.id.txtBody);
editText.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
editText.setInputType(InputType.TYPE_NULL); // 关闭软键盘
return false;
}
});
- 当EidtText无焦点(focusable=false)时阻止输入法弹出
InputMethodManager imm =
(InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
- 如果输入法在窗口上已经显示,则隐藏,反之则显示
imm.toggleSoftInput(0,HIDE_NOT_ALWAYS);
- 输入法是否单开
boolean isOpen=imm.isActive();//isOpen若返回true,则表示输入法打开
- handler的removeMessages
- handler 的removeMessages(int)应用,删除msg.what = int的消息。通常与sendMessageDelayed一起用。场景:比如处理按键频繁操作。
- ANR问题
提示Application Not Responding,android提示用户应用无响应,等待或者终止。
在Android里,应用程序的响应性是由Activity Manager和WindowManager系统服务监视的 。当它监测到以下情况时,会触发ANR:
1.在5秒内没有响应输入的事件
2.BroadcastReceiver在10秒内没有执行完毕
这里要注意的是启动一个新的service处理下载,但下载任务仍然要单独起,因为service也运行在主线程,能够造成ANR问题。
- Service or Thread
表面上thread可以完成service的全部工作,还不存在阻塞UI的问题。但对Android来说,service的优先级要
高于后台挂起的activity,以及activity所创建的thread。因此,作为一个android的重要组件,它被用来执行后台任务。
- Application应用
- 可以在onCreate中实现一些整个APP的初始化任务,这个初始化只会被执行一次,比如广播监听
- Application的生命周期即是Application本身,因此也可以在Application中保存一些全局变量
- .9.png
- .9类型的图片是android的一种特殊图片格式,它支持随意拉伸,这种拉伸不是简单的像素扩大,而是会考虑图片的内容
- 在android中自带draw9patch.bat工具可以制作;
- 公共UI Activity
- 如果存在较多UI重复的界面可以提取基类activity;
- 其思路是在基类activity实现共性界面如导航,并在布局中预留一个layout给子类的activity;
- 在基类的activity中重写setcontentview,子类调用改接口是会将自身的布局插入父类预留的layout;
@Override
public void setContentView(View view) {
mContentLayout.removeAllViews();
mContentLayout.addView(view);
onContentChanged();
}
android知识杂记(二)的更多相关文章
- Android知识杂记(四)
1.完整退出activity的设计思路 1.1 封装一个基础activity类 public abstract class RootActivity extends FragmentActivity{ ...
- android知识杂记(三)
记录项目中的android零碎知识点,用以备忘. 1.android 自定义权限 app可以自定义属于自己的权限: <permission android:description="s ...
- android知识杂记(一)
记录项目中用的零碎知识点,用以备忘. android:screenOrientation:portrait 限制横屏 activity启动状态 singleTop 只执行一次,通常用在欢迎页面 sin ...
- Android 知识杂记(MVP模式)
MVP的模式在于将原来activity中业务逻辑的部分剥离出来,代码示例如下: Account public class Account { private String mUsername; pri ...
- Android仿微信二维码扫描
转载:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一 ...
- Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误
嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 ge ...
- Android反编译(二)之反编译XML资源文件
Android反编译(二) 之反编译XML资源文件 [目录] 1.工具 2.反编译步骤 3.重新编译APK 4.实例 5.装X技巧 6.学习总结 1.工具 1).反编译工具 apktool http ...
- java 、android 知识图谱
java知识图谱: android知识图谱: 照此图练习,神功自成.....
- Android进阶笔记06:Android 实现扫描二维码实现网页登录
一. 扫描二维码登录的实现机制: 详细流程图: (1)PC端打开网页(显示出二维码),这时候会保存对应的randnumber(比如:12345678). (2)Android客户端扫码登录,Andro ...
随机推荐
- mysql备份文件注释乱码处理工具
我们有时候需要做mysql数据库的注释,可是备份出来的是乱码,怎么办呢? 本工具软件来帮你的忙. 将GBK库备份后的文本文件中夹带的UTF8乱码转换为GBK编码,就不再乱码了. http://down ...
- Daily Scrum 12.15
今日完成任务: 完成关于主页右侧资源显示的算法优化:解决了下载资源时的异常. 遇到困难: 编译课设这周要检查,小组成员的大部分时间在完成编译课设,时间很紧. 明日任务: 孙思权 完成第二组提供的数据库 ...
- Asp.net操作cookie大全
实例代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3 ...
- Test注解的两个属性(转)
Test注解的两个属性:expected和timeout Junit的Test注解支持两个可选的参数expected和timeout.expected声明一个测试方法必须抛出一个异常.如果不抛出异常或 ...
- SaaS模式给用户带来的优势
这两年SaaS服务在中国越来越受欢迎,企业正在从使用本地化软件向SaaS服务转变.由于企业用户人力成本的上升.移动终端设备的兴起以及共享经济对企业的影响,企业采用经营设备.软件的方式也在逐渐发生着变化 ...
- android六大框架
-LinearLayout线性布局 垂直排序,每行仅包含一个界面元素 水平排序,每列仅包含一个界面元素 orientation,Layout-weight,Layout-margin(外边距,与屏幕) ...
- Extjs 表单验证后,几种错误信息展示方式
今天要求对form表单验证,进行系统学习一下,故做了几个示例: Ext.onReady(function(){ var panel=Ext.create('Ext.form.Panel' ...
- webview loadUrl() 弹出系统浏览器解决办法
有很多时候,我们请求的网站会直接跳转到一个位置,这样会直接全屏浏览器加载被跳转的网页,或者弹出浏览器选择(除了系统的,你还自己安装了其他浏览器). 于是解决办法的原理就是,在webview中跳转. 办 ...
- JavaScript 三个组成部分
1.核心(ECMAScript) ECMAScript 仅仅是一个描述,定义了脚本语言的所有属性.方法和对象.其他语言可以实现 ECMAScript 来作为功能的基准,JavaScript 就是这样: ...
- android 的数学公式图片转换
在应用中的数学公式是不能直接以文本显示和输入的,包括在一些学习类网站上看到的公式,他们都是以gif图片的形式展示出来的.而怎么样生成各种各样的gif图片形式的数学公式呢,此处未作深入研究,我所知道的是 ...