Android Support Annotations註解庫之優化程式碼
阿新 • • 發佈:2018-11-12
導言:
Android Support Annotations是從19.1版本引入的註解庫,可優化程式碼,增加可讀性,又可減少程式碼的報錯
使用:
1:導包
implementation 'com.android.support:support-annotations:23.4.0'
2:Support Annotations分類
2.1:Nullness註解
@Nullable註解可以用來標識特定的引數或者返回值可以為null
@NonNull註解可以用來標識引數不能為null
2.2:Resource Type 註解
2.3:Threading 註解
Threading註解:
@UiThread UI執行緒
@MainThread 主執行緒
@WorkerThread 子執行緒
@BinderThread 繫結執行緒
2.4:Value Constraints註解:@Size, @IntRange, @FloatRange
2.5:Permissions 註解: @RequiresPermission
@RequiresPermission(Manifest.permission.SET_WALLPAPER)
public abstract void setWallpaper(Bitmap bitmap) throws IOException;
//如果你至少需要許可權集合中的一個,你可以使用anyOf屬性
@RequiresPermission(anyOf = {
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION})
public abstract Location getLastKnownLocation(String provider);
//如果你同時需要多個許可權,你可以用allOf屬性
@RequiresPermission(allOf = {
Manifest.permission.READ_HISTORY_BOOKMARKS,
Manifest.permission.WRITE_HISTORY_BOOKMARKS})
public static final void updateVisitedHistory(ContentResolver cr, String url, boolean real) ;
//對於intents的許可權,可以直接在定義的intent常量字串欄位上標註許可權需求(他們通常都已經被@SdkConstant
//註解標註過了)
@RequiresPermission(android.Manifest.permission.BLUETOOTH)
public static final String ACTION_REQUEST_DISCOVERABLE =
"android.bluetooth.adapter.action.REQUEST_DISCOVERABLE";
//對於content providers的許可權,你可能需要單獨的標註讀和寫的許可權訪問,所以可以用@Read或者@Write標註
//每一個許可權需求
@RequiresPermission.Read(@RequiresPermission(READ_HISTORY_BOOKMARKS))
@RequiresPermission.Write(@RequiresPermission(WRITE_HISTORY_BOOKMARKS))
public static final Uri BOOKMARKS_URI = Uri.parse("content://browser/bookmarks");
若是專案有需求,可以大量的使用