gpt4 book ai didi

java - Android:ActivityCompat.requestPermissions 需要 Activity 而不是上下文:/

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:49:55 27 4
gpt4 key购买 nike

我正在调用 ActivityCompat.requestPermissions 以获得 android M 下的权限,但是,这需要参数中的 Activity 。这很好,除了我想从单例调用它,并且单例可以被应用程序中的任何 Activity 使用。

ActivityCompat.requestPermissions(context, PERMISSIONS_LOCATION, REQUEST_LOCATION);

我想避免在单例中持有对任何 Activity 的引用,因为这肯定会导致内存泄漏,而且我更希望单例根本不持有任何 Activity ,因为它在所有 Activity 中都需要无用的代码该调用(它们中的每一个都必须在 getInstance() 中包含一个额外的参数,以便单例保持 Activity - 单例需要从某处获取 Activity )。

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

最佳答案

关于 requestPermissions 的文档说 Activity 参数是目标 Activity ,如果您没有在 list 中包含权限,则要在其中显示弹出窗口,为此目的,该方法要求您传递 Activity 而不是上下文,因为在完成请求权限任务后,它会将结果返回给调用 Activity (即作为参数传递给方法的 Activity )。如果您坚持通过单例实现此功能,我建议您创建一个函数来接受参数中的 Activity 和回调,因为无论是否授予权限,您都需要处理回调

关于java - Android:ActivityCompat.requestPermissions 需要 Activity 而不是上下文:/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32097229/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com