这就是我试图关闭我的应用程序的原因:
import androidx.appcompat.app.AppCompatActivity;
import android.widget.ImageButton;
import android.os.Build;
import android.os.Bundle;
import android.content.Intent;
public class PlayMSActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
ImageButton exit = findViewById(R.id.msexit);
ImageButton start = findViewById(R.id.msstart);
exit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
finishAndRemoveTask();
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
finishAffinity();
} else {
finish();
}
}
});
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
startActivity(new Intent(PlayMSActivity.this, AnotherClass.class));
}
});
}
}
来自AnotherClass的代码:
import androidx.appcompat.app.AppCompatActivity;
import android.widget.ImageButton;
import android.os.Build;
import android.os.Bundle;
import android.content.Intent;
public class AnotherClass extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
ImageButton ret = findViewById(R.id.ret1);
ret.setOnClickListener(new View.OnClickListener(){
startActivity(new Intent(AnotherClass.this, PlayMSActivity.class));
finish();
});
}
}
产生的行为:该应用程序很快闪烁掉,但几毫秒后又重新出现。 有时,它会按预期关闭,但只有每7次尝试一次。我正在测试的设备是安装了最新API的TabA。相同的情况也适用于带有Q版本SDK的仿真选项卡上的测试。
这是为什么以及如何解决?
答案 0 :(得分:1)
所以我弄清楚了我的问题所在。
我开始了新的活动,但没有完成。每次在finish();
部分开始一个新的Activity之后,我只需要添加一个start.setOnClickListener
,就像这样:
startActivity(new Intent(PlayMSActivity.this, AnotherClass.class));
finish();
还有其他解决方案,但这显示了我的问题所在:我从其他活动开始了此活动,但没有首先完成它。因此,该类有几个未完成的Activity实例,导致不得不逐个关闭它们。
为其他人提示:不要启动您已经在运行的活动,或者如果知道仍然要重新启动它,则不要结束它。