Java 是否退出(0)导致缓存或内存出现问题?
checkselfpermission:Java 是否退出(0)导致缓存或内存出现问题?,java,android,Java,Android,checkselfpermission: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); checkSelfPermission(); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setContentView(R.layout
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
checkSelfPermission();
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.activity_main);
ImageButton = (Button) findViewById(R.id.selectimage);
ImageButton.setOnClickListener(this);
imageView = (ImageView) findViewById(R.id.imageview);
int permssionCheck_read = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE);
int permssionCheck_write = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
int permssionCheck_internet = ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET);
if (permssionCheck_read == PERMISSION_DENIED || permssionCheck_write == PERMISSION_DENIED || permssionCheck_internet == PERMISSION_DENIED) {
ImageButton.setEnabled(false);
checkSelfPermission();
System.exit(0);
}
}
这是我的代码,我需要检查权限。如果用户不允许重要权限,我必须限制用户使用应用程序。所以我要求用户允许这些权限,然后通过
public void checkSelfPermission() {
String temp = "";
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
temp += Manifest.permission.READ_EXTERNAL_STORAGE + " ";
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
temp += Manifest.permission.WRITE_EXTERNAL_STORAGE + " ";
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
temp += Manifest.permission.CAMERA + " ";
}
if (ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {
temp += Manifest.permission.INTERNET + " ";
}
if (TextUtils.isEmpty(temp) == false) {
ActivityCompat.requestPermissions(this, temp.trim().split(" "), 1);
} else {
}
}
重新检查权限。我好奇
系统。退出(0)代码>导致问题。如果我像这样重复(拒绝权限、通过System.exit重新启动应用程序、拒绝权限),RAM或缓存可能会有问题?请查看requestPermissions的文档,看看您是否可以实际输入整个权限数组来请求:
只要做:
System.exit(0);
系统出口(0);不会“重启”你的应用程序,它会停止jvm。。不存在自愿的问题?你的整个方法都是错误的。在今天的安卓系统中,你可以请求你想要的所有权限,它只会向用户提供那些未经批准的权限,因此你不必逐一检查。此外,您还可以通过用户对请求的响应获得回调,因此您只需签入该回调,如果用户拒绝该权限,请退出应用程序。这样,每当用户打开应用程序时,都会要求他授予权限,只要用户回答“否”,应用程序就会关闭仅使用“完成”来完成当前活动查看requestPermissions的文档,查看您是否可以实际输入整个权限数组来请求:
String[] permissions = new String[] {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,
Manifest.permission.INTERNET
};
ActivityCompat.requestPermissions(this, permissions, 3322 /* your custom request code */);