我正在调用ActivityCompat.requestPermissions来获取Android M下的权限,但是这需要在参数中传入一个活动。虽然这样很好,但是我想从单例中调用它,而且单例可以被应用程序中的任何活动使用。
ActivityCompat.requestPermissions(context, PERMISSIONS_LOCATION, REQUEST_LOCATION);
我希望避免在单例中持有任何活动的引用,因为这是导致内存泄漏的可靠方法,而且我更喜欢单例根本不持有活动,因为所有调用它的活动都需要无用的代码(每个活动都必须在getInstance()中包含一个额外的参数,以便单例可以持有活动 - 单例需要从某个地方获取活动)。
现在,我可以技术上获取一个活动,然后在请求权限后立即将其设置为null,但这仍然会使我在每个调用单例的活动中留下大量无用的活动参数。是否有更优雅的解决方案,我只是没有看到?