记录项目中的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. 【如何快速的开发一个完整的iOS直播app】(采集篇)

    原文转自:袁峥Seemygo    感谢分享.自我学习 前言 在看这篇之前,如果您还不了解直播原理,请查看这篇文章如何快速的开发一个完整的iOS直播app(原理篇) 开发一款直播app,首先需要采集主 ...

  2. DataSet用法详细 转

    DataSet用法详细 转 DataSet用法详细 一.特点介绍 1.处理脱机数据,在多层应用程序中很有用. 2.可以在任何时候查看DataSet中任意行的内容,允许修改查询结果的方法. 3.处理分级 ...

  3. python中几个常见的“黑盒子”之 列表list

    python常见的数据类型有:字符串,布尔类型,整数,浮点数,数字,日期,列表,元祖,字典.相信前面6个大家都非常的熟悉,但是对于python的列表,元祖,字典我有时候一直在想其内部的实现是怎么样子的 ...

  4. V8Sharp的中文乱码问题解决

    V8是一个开源的javascript引擎,到现在为止堪称为是性能最好最稳定的javascript.因此还诞生了一个基于此引擎的服务端开发框架:Node.js.由此可见此引擎的牛逼之处.由于打算在后续项 ...

  5. fuse入门

    参考1 http://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/html/running.html 参考2 http://www.maastaar.net/fus ...

  6. 如何辨别具体的一种SaaS是否安全?

    如何辨别具体的一种SaaS是否安全,需要把握以下几点: 1.传输协议加密 首先,要看SaaS产品提供使用的协议,是https://还是一般的http://,别小看这个s,这表明所有的数据在传输过程中都 ...

  7. angular.js中插值语法和ng-bind以及ng-model的区别

    首先呢,插值语法也就是{{}}和ng-bind基本上是没有区别的. 主要区别在于,使用花括号语法时,在AngularJS使用数据替换模板中的花括号时,第一个加载的页面,通常是应用中的index.htm ...

  8. STL库的内存配置器(allocator)

    正在学习中,如果有错,还请多多指教,根据不断的理解,会进行更改,更改之前的样子都会保留下来,记录错误是最大的进步,嗯嗯! 具有次配置力的SGI空间配置器(SGI是STL的一种版本,也有其他的版本) 这 ...

  9. Android Fragment应用实战,使用碎片向ActivityGroup说再见

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/13171191 现在Fragment的应用真的是越来越广泛了,之前Android在3 ...

  10. max min 与 min max 的差别

    在求解最优化问题时,遇到一个对偶问题的转换:对于形如 的问题,可以转换为求解 即原问题的对偶问题.而在一般情况下: 对于这个为题的说明我参照http://math.stackexchange.com/ ...