今天看android P源碼時發現新 關鍵字defaultandroid
//CommandQueueapp
public interface Callbacks {
default void setIcon(String slot, StatusBarIcon icon) { }
default void removeIcon(String slot) { }
default void disable(int state1, int state2, boolean animate) { }
default void animateExpandNotificationsPanel() { }
default void animateCollapsePanels(int flags) { }
default void togglePanel() { }
default void animateExpandSettingsPanel(String obj) { }
default void setSystemUiVisibility(int vis, int fullscreenStackVis,
int dockedStackVis, int mask, Rect fullscreenStackBounds, Rect dockedStackBounds) {
}
default void topAppWindowChanged(boolean visible) { }
default void setImeWindowStatus(IBinder token, int vis, int backDisposition,
boolean showImeSwitcher) { }
default void showRecentApps(boolean triggeredFromAltTab) { }
default void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey) { }
default void toggleRecentApps() { }
default void toggleSplitScreen() { }
default void preloadRecentApps() { }
default void dismissKeyboardShortcutsMenu() { }
default void toggleKeyboardShortcutsMenu(int deviceId) { }
default void cancelPreloadRecentApps() { }
default void setWindowState(int window, int state) { }
default void showScreenPinningRequest(int taskId) { }
default void appTransitionPending(boolean forced) { }
default void appTransitionCancelled() { }
default void appTransitionStarting(long startTime, long duration, boolean forced) { }
default void appTransitionFinished() { }
default void showAssistDisclosure() { }
default void startAssist(Bundle args) { }
default void onCameraLaunchGestureDetected(int source) { }
default void showPictureInPictureMenu() { }
default void setTopAppHidesStatusBar(boolean topAppHidesStatusBar) { }less
default void addQsTile(ComponentName tile) { }
default void remQsTile(ComponentName tile) { }
default void clickTile(ComponentName tile) { }ide
default void handleSystemKey(int arg1) { }
default void showPinningEnterExitToast(boolean entering) { }
default void showPinningEscapeToast() { }
default void handleShowGlobalActionsMenu() { }
default void handleShowShutdownUi(boolean isReboot, String reason) { }繼承
default void showWirelessChargingAnimation(int batteryLevel) { }token
default void onRotationProposal(int rotation, boolean isValid) { }接口
default void showFingerprintDialog(Bundle bundle, IBiometricPromptReceiver receiver) { }
default void onFingerprintAuthenticated() { }
default void onFingerprintHelp(String message) { }
default void onFingerprintError(String error) { }
default void hideFingerprintDialog() { }
}rem
正常狀況下源碼
interface方法是沒有方法體的,繼承該接口必需要實現。it
default 定義的接口須要有方法體, 繼承能夠不用實現,假如沒有實現,走剛開始定義的方法體。
至關於定義了不少接口,可能只用了須要一個,不用一一實現。