System.exit(0)导致缓存或内存出现问题


@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);
}
}

checkself-permission:

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 {
}
}

这是我的代码,我需要检查权限。如果用户不允许使用重要权限,我必须限制用户使用应用程序。所以我要求用户允许这些权限,并通过重新启动应用程序

System.exit(0);

以重新检查权限。我很好奇System.exit(0);引起的问题。如果我重复这样的话(拒绝权限,通过System.exit重新启动应用程序,拒绝权限(,RAM或缓存可能有问题?

只需查看requestPermissions的文档,就可以实际输入要请求的整个权限数组:https://developer.android.com/reference/androidx/core/app/ActivityCompat#requestPermissions(android.app.Activity,%20java.lang.String[],%20int(

只需:

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 */);

最新更新