我需要手动为API级别23请求权限,并且出现对话框窗口并且应用程序进入后台.
这是我的代码:
@OverrIDe public voID onDialogDone(int dialog, boolean result) { DialogFragment newFragment; switch (dialog) { case EulA_DIALOG: if (result) { boolean numberExists = _appRegistration.checkPhoneNumber(); if (!numberExists) { ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_PHONE_STATE}, MY_PERMISSIONS_PHONE_STATE_READ); return; } else { //do some work } } else { Intent intent = new Intent(...); startActivity(intent); finish(); } break;.... }}
另外,在MainActivity中我覆盖了以下方法:
@OverrIDe public voID onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case MY_PERMISSIONS_PHONE_STATE_READ: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // do some work } else { // do some work } return; } }
但是,如果我单击“允许”或“拒绝”,则不会调用此方法,因为应用程序处于后台模式…我记录了onPause和onStop方法,并且在显示权限窗口后调用它们.
解决方法:
存在MainActivity问题,在清单文件中将其配置为:
androID:noHistory=”true”
我刚删除了这个属性,应用程序开始按预期工作.
总结以上是内存溢出为你收集整理的android – 请求权限窗口强制应用程序停止全部内容,希望文章能够帮你解决android – 请求权限窗口强制应用程序停止所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)