Android提高工作效率Api、小技巧汇总

来源:互联网 发布:mac打开刚关闭的网页 编辑:程序博客网 时间:2024/06/08 01:22

Android开发中有很多小点,使用可以提升开发效率,减少我们工作量,却又很容易被遗忘,这里总结一部分,点滴积累以备日后查阅。

1.TextUtils.isEmpty(CharSequence str)

使用频率超高的字符串判空方法,返回一个 boolean 值,内部实现的判断条件为:str == null || str.length() == 0。备受开发人员喜爱的一个 if 字符串判断,系统已经帮我们封装过。


2.view.performClick()

自动调用 View 点击事件。通常按钮等控件只有在用户点击时才能触发其点击事件,该方法可以由某些特殊条件触发模拟用户点击行为。类似的还有performLongClick()方法。


3.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE)

设置安全窗口,禁止系统截屏。


4.拦截 Back 键,使 App 进入后台而不是关闭

使用 Back 键返回桌面,但不关闭当前应用,而是使之进入后台,就像按下 Home 键一样。

这个技巧厉害了。通常为了防止出现用户误按 Back 键退出 App 的情况,我们会在应用首页的 Activity 中监听返回键操作,使用 Toast 弱提示甚至 Dialog 强提示的方式给到用户一个再次确认的操作,但无法阻止用户通过返回键逐步关闭应用。

然而,如果用这个方法拦截 App 最后一个 Activity(常见为首页界面),既没有阻碍用户操作(回到桌面),又没有关闭掉我们的应用(后台运行中),间接提高 App 的存活时间,真乃暗度陈仓。并且据我实验,微信、支付宝、微博等 App 都是这么做的,大家不妨一试。


5.TextView字体加粗

在xml文件中使用android:textStyle=”bold” 可以将英文设置成粗体,但是不能将中文设置成粗体。
将中文设置成粗体的方法是:
[java] 
TextView tv = (TextView)findViewById(R.id.TextView01); 
TextPaint tp = tv.getPaint(); 
tp.setFakeBoldText(true); 

6.请求父控件或祖宗空间是否拦截事件

/**
* 事件分发, 请求父控件及祖宗控件是否拦截事件
*/
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (getCurrentItem() != 0) {
// 不拦截
getParent().requestDisallowInterceptTouchEvent(true);// 用getParent去请求,
} else {// 如果是第一个页面,需要显示侧边栏, 请求父控件拦截
getParent().requestDisallowInterceptTouchEvent(false);// 拦截
}
return super.dispatchTouchEvent(ev);
}

0 0