Snippets 代码片段¶
Logcat中的System.out
¶
System.out.println()
在Logcat中的级别为Info
,tag为System.out
异步装载器Loader¶
通过系统的回调方法将数据异步装载到ListView、GridView等控件中。
- 对Activity和Fragment均有效
- 存在数据改变通知机制
- 横竖屏切换时可以保证组件数据不丢失
电话与短信¶
- SMSManager
- TelephoneManager
媒体¶
MeidaPlayer
Sensor¶
SensorManager
撤销软键盘¶
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
使用全屏模式¶
使用预定义的全屏幕主题或自定义全屏幕主题
<style name="FullScreen" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">true</item>
</style>
隐藏软导航键
setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
保持屏幕常亮¶
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCRENN_ON);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCRENN_ON);
其他:WakeLock,需要额外权限
确定设备的物理尺寸¶
getResources().getConfiguration().sreenLayout & Configuration.SCREENLAYOUT_SIZE_MASK
确定设备的屏幕像素大小¶
WindowsManager wm = (WindowManager) context.getSystemService(Context.WINDOWS_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screenWidth = size.x;
int screenHeight = size.y;
确定设备的DPI¶
final int density = getResources().getDisplayMetrics().densityDpi;
检查网络连接¶
public static boolean isConnectedToNetwork(Context context) {
boolean connected = false;
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm != null) {
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni != null) {
connected = ni.isConnected();
}
}
return connected;
}
检查当前线程是否为UI线程¶
if (Looper.myLooper() == Looper.getMainLooper()) {
// UI线程
} else {
// 其他线程
}