正常獲取Binder對象的幾種方式

返回 Binder 對象:

IBinder iBinder = ServiceManager.getService(Context.NOTIFICATION_SERVICE)

返回 Binder 接口對象(即Service接口):

  • 一般獲取方式:
INotificationManager sINM = INotificationManager.Stub.asInterface(ServiceManager.getService(Context.NOTIFICATION_SERVICE));
  • 有些 XxxManager 中有 getService() 方法,也可以獲取到 Binder 接口對象:
  • android.app.ActivityManager
    public static IActivityManager getService() {
        return (IActivityManager)IActivityManagerSingleton.get();
    }

返回 封裝的 XxxManager 對象:

ActivityManager mActivityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
StorageManager mStorageManager = mContext.getSystemService(StorageManager.class);
  • 有些通過 XxxManager from( ) 的方式:
StorageManager storageManager = StorageManager.from(mContext);

public static StorageManager from(Context context) {
    return context.getSystemService(StorageManager.class);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容