我不知道我这种编程思维对不对,如果不对请各位指正。
Android6.0以上需要权限申请,在申请权限的时候用户没有点击授权或者拒绝,但是主线程一直在往下执行,我想在用户没点击授权或拒绝的时候暂停主线程的执行,等用户点击后再执行。我看的是主线程暂停5秒自动销毁,所以如果主线程不能暂停有其他办法实现这个吗?
你这思路出现了方向性的错误,一般可以这么说每一个APP都有一个主线程即所谓的ANR,优先级别也是最高的,默认情况下所有的组件都是在这个线程里创建的,同时也是负责响应用户交互的
,楼上也说了超过5S是会造ANR,实际上超过2S不响应就卡顿了,给人非常不好的体验,所以你这个其实应该从动态获取权限去考虑
按理来说,主线程是不可以暂停的,因为超过5s就会报ANR,在android6.0之后,某些权限需要在java代码中手动申请,其中有一个申请结果的resoult
在这个方法里面是可以知道是否获取到了权限,你在进行判断。不要在主线程中耗时操作,也不可以暂停的
授权服务没获取,你就不能往下进行了,这个等待主线程的思路是行不通的。不如采取现在很多应用采用的方式,弹出对话框提示用户,让用户选择权限
用户拒绝授权你直接退出应用就好了,不要想着暂停主线程