【问题标题】:Application stop responding when I change permission from app settings in Marshmallow当我从 Marshmallow 中的应用程序设置更改权限时,应用程序停止响应
【发布时间】:2026-01-06 06:30:02
【问题描述】:

我在我的应用程序中使用位置跟踪,一切正常。但是,当我通过按主页按钮在后台推送我的应用程序时,从应用程序设置中撤消位置权限并返回我的应用程序,它会停止响应并崩溃。 我正在使用服务进行位置跟踪。 当我从设置中更改权限时,它也会停止调试。

请告诉我如何处理这个问题。

【问题讨论】:

    标签: android android-permissions android-location


    【解决方案1】:

    marshmallow 及以上版本使用不同的设置来请求权限。你需要设置它
    如果您的应用程序没有所需的权限,它会在运行时请求它。
    https://developer.android.com/training/permissions/requesting.html
    它可以帮助你!

    【讨论】:

    • 如果您没有得到答案,请不要犹豫发表评论,也不要忘记为答案投票 :)
    • 我已经这样做了 if(Build.VERSION.SDK_INT >= 23) { if(checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { String perm[] = {Manifest.权限.ACCESS_FINE_LOCATION}; requestPermissions(perm, REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS); } }
    • 那么您可以编辑您的问题并发布您的 logcat 错误,以便深入挖掘!
    【解决方案2】:

    onRestart() --> onStart() --> onResume() 当你从设置返回并且应用程序对用户可见时被调用,所以我们需要再次检查是否在 onRestart 中授予了权限() 方法。如果未授予权限,您需要再次显示权限对话框。希望这可以帮助!!

    【讨论】:

    • 我已经在 onResume() 中完成了这个。如果没有授予权限,它会先请求权限