记录项目中的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知识杂记(二)的更多相关文章

  1. Android知识杂记(四)

    1.完整退出activity的设计思路 1.1 封装一个基础activity类 public abstract class RootActivity extends FragmentActivity{ ...

  2. android知识杂记(三)

    记录项目中的android零碎知识点,用以备忘. 1.android 自定义权限 app可以自定义属于自己的权限: <permission android:description="s ...

  3. android知识杂记(一)

    记录项目中用的零碎知识点,用以备忘. android:screenOrientation:portrait 限制横屏 activity启动状态 singleTop 只执行一次,通常用在欢迎页面 sin ...

  4. Android 知识杂记(MVP模式)

    MVP的模式在于将原来activity中业务逻辑的部分剥离出来,代码示例如下: Account public class Account { private String mUsername; pri ...

  5. Android仿微信二维码扫描

    转载:http://blog.csdn.net/xiaanming/article/details/10163203 了解二维码这个东西还是从微信中,当时微信推出二维码扫描功能,自己感觉挺新颖的,从一 ...

  6. Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误

    嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 ge ...

  7. Android反编译(二)之反编译XML资源文件

    Android反编译(二) 之反编译XML资源文件 [目录] 1.工具 2.反编译步骤 3.重新编译APK 4.实例 5.装X技巧 6.学习总结 1.工具 1).反编译工具  apktool http ...

  8. java 、android 知识图谱

    java知识图谱: android知识图谱: 照此图练习,神功自成.....

  9. Android进阶笔记06:Android 实现扫描二维码实现网页登录

    一. 扫描二维码登录的实现机制: 详细流程图: (1)PC端打开网页(显示出二维码),这时候会保存对应的randnumber(比如:12345678). (2)Android客户端扫码登录,Andro ...

随机推荐

  1. TP框架,根据当前应用状态对应的配置文件

    index.php define('APP_STATUS','website'); /ThinkPHP/Library/Think/Dispatcher.class.php /** * 应用程序初始化 ...

  2. postgresql+slony-i安装配置主从

    slon软件下载地址:slony1-1.2.6 http://slony.info/downloads/1.2/source/ postgresql下载地址: http://www.postgresq ...

  3. mvc AddImplicitRequiredAttributeForValueTypes

    1.AddImplicitRequiredAttributeForValueTypes (为值类型添加隐式必填验证),默认值 为true.刚在mvc view(html)中会为model的值类型属性( ...

  4. DOCTYPE的详细图解

    之前有一次写代码的时候忘记写了<!DOCTYPE html> 导致样式的效果一直有点问题,查了很久才发现时候这个的锅.之后自己详细的来查找了DOCTYPE的作用. 在目前,基本上都是采用浏 ...

  5. DB2死锁的解决办法

    db2 get snapshot for locks on sampledb2 get db cfg for sampledb2 update db cfg using dlchktime 10000 ...

  6. Groovy 模版引擎

    1. Introduction Groovy supports multiple ways to generate text dynamically including GStrings, print ...

  7. shell学习--grep2

    grep相关的练习,解释下面grep表达式的含义: grep '\<Tom\>' file 打印file中包含单词 Tom的行 grep 'Tome Savage' file 打印file ...

  8. hasOwnProperty和in

    返回一个布尔值,指出一个对象是否具有指定名称的属性. hasOwnProperty 此方法无法检查该对象的原型链中是否具有该属in 可以检查原型链中是否具有该属

  9. 2008ISBN号码

    题目描述 Description 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符( ...

  10. MIUI系统安全中心之自启动管理解密

    迄今为止,Android系统的手机已经在整个手机市场中占有很大的比重.其中小米手机更是因为它的性价比和销售模式普遍的出现在了人们的日长生活中. 废话不多说,进入正题.作为一个Android的开发者,避 ...