今天看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 定义的接口须要有方法体, 继承能够不用实现,假如没有实现,走刚开始定义的方法体。
至关于定义了不少接口,可能只用了须要一个,不用一一实现。