Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否退出(0)导致缓存或内存出现问题?_Java_Android - Fatal编程技术网

Java 是否退出(0)导致缓存或内存出现问题?

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

checkselfpermission:

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