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();
}
処理
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;
}
}