当前线程判断

public static boolean isOnMainThread() {    return Looper.myLooper() == Looper.getMainLooper();}public static boolean isOnBackgroundThread() {    return !isOnMainThread();}

EditText 不自动获取焦点

在父 Layout 中添加:

android:focusable="true"android:focusableInTouchMode="true"

字符串转 Html

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {    Html.fromHtml(string, flag);} else {    Html.fromHtml(string);}

获取错误信息

Log.getStackTraceString(throwable);

将文件大小转换为 PB、TB、GB、MB、KB、B 字符串

Formatter.formatFileSize(mAppContext, sizeBytes);

获取当前应用程序内存阈值

ActivityManager.getMemoryClass();

监听应用 Activity 的生命周期

mApplication.registerActivityLifecycleCallbacks(callback);// mApplication.unregisterActivityLifecycleCallbacks(callback);

Sqlite 事务处理

db.beginTransaction();try{    for ( ... ) {        db.insert(...);        // 这个方法表示执行当前事务时,如果碰到其它的数据库操作,先让别的操作完再继续执行。        db.yieldIfContendedSafely();    }    db.setTransactionSuccessful();}finally{    db.endTransaction();}

处理 OnTrimMemory

OnTrimMemory 方法来自 ComponentCallbacks2 接口,Android 4.0 之后提供的 API,如果需要兼容 Android 4.0 以下的版本使用 onLowMemory
实现此接口的类都可以处理此方法,比如 Application、Activity、Fragment、Service、ContentProvider

@Override public void onTrimMemory(int level) {    switch (level) {        case Activity.TRIM_MEMORY_UI_HIDDEN:            // 应用的所有UI界面被隐藏了(点击了Home 或 Back键),这时候应当释放一些资源。            break;        case Activity.TRIM_MEMORY_RUNNING_MODERATE:            // 应用正常运行,并且不会被杀掉。手机内存已经有点低了,系统开始根据LRU缓存规则杀死进程。            break;        case Activity.TRIM_MEMORY_RUNNING_LOW:            // 应用正常运行,并且不会被杀掉。手机内存已经非常低了,这时候应当释放一些资源。            break;        case Activity.TRIM_MEMORY_RUNNING_CRITICAL:            // 应用正常运行,系统已经根据LRU缓存规则杀掉了大部分缓存的进程,此时应当释放非必须的所有资源。            break;        case Activity.TRIM_MEMORY_BACKGROUND:            // 当前内存已经很低了,系统准备开始根据LRU缓存来清理进程。            break;        case Activity.TRIM_MEMORY_MODERATE:            // 当前内存已经很低了,当前应用处于LRU缓存列表的中间位置,这时候应当释放一些资源。            break;        case Activity.TRIM_MEMORY_COMPLETE:            // 当前内存已经很低了,系统会最优先杀掉当前应用,此时应当释放非必须的所有资源。            break;    }}

更多相关文章

  1. android 获取包名 通过包名获取应用签名
  2. 2011.09.01(4)——— android 应用程序跳转到桌面
  3. [置顶] Android实用代码集
  4. Android(安卓)杀掉自己进程的方法
  5. Android(安卓)内存泄露分析
  6. Android(安卓)7.1 固件预装客户应用时出现: java.lang.Unsatisfie
  7. 如何实现Android重启应用程序代码 ?
  8. android 横屏 竖屏 全屏 当前屏幕宽 高
  9. Android(安卓)tree应用框架

随机推荐

  1. android user_tag.mk与user编译模式
  2. android bitmap图片压缩,打时间水印。
  3. Android Studio3.0以后outputfile不能用
  4. androidsetClickable不起作用没…
  5. Android:DownloadManager setDestination
  6. Android P(9.0) 证书加密算法变更
  7. android 5.0以上修改SearchView的搜索图
  8. 【原创】Android 对话框的使用
  9. android中的一些开源项目
  10. 加载时不直接弹出输入法