android requestpermissions参数,java – Android:ActivityCompat.requestPermissions需要活动而不是上下文:/...

我正在调用ActivityCompat.requestPermissions以获取android M下的权限,但是,这需要参数中的活动.这很好,除了我想从单身人士调用它,单身人士可以被应用程序中的任何活动使用.

ActivityCompat.requestPermissions(context, PERMISSIONS_LOCATION, REQUEST_LOCATION);

我想避免对单例中的任何活动进行引用,因为这是内存泄漏的可靠方法,而且我更喜欢单例根本不进行活动,因为它在所有调用的活动中需要无用的代码(他们中的每一个都必须在getInstance()中包含一个额外的参数,以便单例持有一个活动 – 单例需要从某个地方获取活动.

现在,我可以在技术上获得一个活动,然后在我请求许可后将其设置为null,但是在我调用单例的每个活动中,仍然会留下大量无用的活动参数.是否有一个更优雅的解决方案,我只是没有看到这个问题?

解决方法:

requestPermissions上的文档说,如果您没有在清单中包含权限,则活动参数是您要显示弹出窗口的目标活动,为此目的,该方法要求您传递活动而不是上下文,因为完成请求权限任务后,它将结果返回给调用活动(即作为参数传递给方法的活动).如果你坚持通过你的单例实现这个,我建议你创建一个接受参数和回调中的活动的函数,因为如果给出了权限,你将需要处理回调

标签:java,android,singleton

来源: https://codeday.me/bug/20190516/1117056.html