Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.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 如何仅运行此活动一次?_Java_Android - Fatal编程技术网

Java 如何仅运行此活动一次?

Java 如何仅运行此活动一次?,java,android,Java,Android,我的应用程序中有一个名为permissions的活动,我希望它只运行一次,因为这是一个用户允许对应用程序拥有权限的活动,一旦允许,就不需要执行此活动。现在,我可以在用户授予权限后激活活动,但问题是当我在主活动上并按下“后退”按钮时,我仍然可以看到权限活动。我不想在后退按钮上显示权限 相关Java代码如下所示: package com.techjapreet.shivshankaringtone; 导入android.Manifest; 导入android.app.AlertDialog; 导入

我的应用程序中有一个名为permissions的活动,我希望它只运行一次,因为这是一个用户允许对应用程序拥有权限的活动,一旦允许,就不需要执行此活动。现在,我可以在用户授予权限后激活活动,但问题是当我在主活动上并按下“后退”按钮时,我仍然可以看到权限活动。我不想在后退按钮上显示权限

相关Java代码如下所示:

package com.techjapreet.shivshankaringtone;
导入android.Manifest;
导入android.app.AlertDialog;
导入android.content.DialogInterface;
导入android.content.Intent;
导入android.content.SharedReferences;
导入android.content.pm.PackageManager;
导入android.net.Uri;
导入android.os.Build;
导入android.os.Bundle;
导入android.provider.Settings;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Toast;
导入androidx.appcompat.app.appcompat活动;
导入androidx.core.app.ActivityCompat;
导入androidx.core.content.ContextCompat;
公共类权限扩展AppCompatActivity{
私有静态最终整数写入\存储\请求\代码=123;
私有静态最终整数写入设置请求代码=321;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.permissions);
SharedReferences preferences=GetSharedReferences(“首选项”,模式_PRIVATE);
String FirstTime=preferences.getString(“FirstTimeInstall”,”);
如果(第一次等于(“是”)){
意向意向=新意向(permissions.this,MainActivity.class);
星触觉(意向);
}
否则{
SharedReferences.Editor=首选项.edit();
putString(“FirstTimeInstall”,“Yes”);
editor.apply();
}
findViewById(R.id.btn_do_任务).setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
if(Build.VERSION.SDK\u INT>=Build.VERSION\u code.M){
if(选中两个(){
startActivity(新意图(permissions.this、MainActivity.class));
}
否则{
checkStoragePermission();
}
}
}
}
);
}
私有布尔checkBoth(){
返回(ContextCompat.checkSelfPermission(这个,Manifest.permission.WRITE\u外部存储)
==PackageManager.PERMISSION(已授予)和&Settings.System.canWrite(此);
}
public void checkStoragePermission(){
if(ContextCompat.checkSelfPermission(这个,Manifest.permission.WRITE\u外部存储)
!=PackageManager.权限(已授予){
如果(ActivityCompat.shouldShowRequestPermissionRegulation)(
这个,Manifest.permission.WRITE(外部存储){
AlertDialog.Builder=新建AlertDialog.Builder(此);
builder.setMessage(“铃声、读外部和写外部”+
“执行此任务需要存储权限。”);
builder.setTitle(“请授予这些权限”);
setPositiveButton(“确定”,新的DialogInterface.OnClickListener(){
@凌驾
公共void onClick(DialogInterface,inti){
ActivityCompat.requestPermissions(
这个,,
新字符串[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
写入存储请求代码
);
}
});
builder.setNeutralButton(“取消”,空);
AlertDialog=builder.create();
dialog.show();
}
否则{
//直接请求所需的权限,无需解释
ActivityCompat.requestPermissions(
这
新字符串[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},
写入存储请求代码
);
}
}
否则{
//在已授予权限时执行某些操作
Toast.makeText(这是“已授予写入外部存储权限”,Toast.LENGTH_SHORT.show();
if(选中两个(){
startActivity(新意图(this,MainActivity.class));
}
否则{
checkSettingsPermission();
}
}
}
@凌驾
public void onRequestPermissionsResult(int-requestCode、字符串[]权限、int[]grantResults){
开关(请求代码){
案例写入\存储\请求\代码:
//取消请求时,结果数组为空
如果((grantResults.length>0)和&(grantResults[0]==PackageManager.PERMISSION_已授予)){
//已授予权限
Toast.makeText(这是“授予写入外部存储权限”,Toast.LENGTH_SHORT).show();
}
埃尔斯
@Override
public void onPause() {
    super.onPause();
    finish();
}
if (isCheckAcceptAgrement){
   startactivity(this, anotherActivity.class);
}else{
   startactivity(this, acceptAgrement.class);
}