Androidテクニック収集

4163 ワード

現在のスレッド判定
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();
}

処理OnTrimMemoryOnTrimMemory方法は、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;
    }
}