gpt4 book ai didi

java - 使用标志 CLEAR_TOP 时后台堆栈中的 Activity

转载 作者:行者123 更新时间:2023-12-02 06:07:34 26 4
gpt4 key购买 nike

我在android中执行与 Intent 标志相关的家庭任务,并创建了10个 Activity ,每个 Activity 随后调用下一个 Activity (MainActivity打开activity2,activity2调用activity3等)。第 10 个 Activity 使用标志 CLEAR TOP 调用 Activity4,因此我猜测,在屏幕上出现第 4 个 Activity 后,我不应该能够返回到第 10 个 Activity ,但我还是这么做了。有趣的是,当我从第 4 个 Activity 导航到第 5 个 Activity (在我通过第 10 个 Activity 之后)并导航回来时,我的堆栈被清除,我返回到第 3 个堆栈(但不是第 10 个)。如何将此行为应用到第四个 Activity 本身,而不需要再次进行第五个 Activity ?

公共(public)类 MyActivity9 扩展了 AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main9);
Button b=findViewById(R.id.btn_to_2);
final Intent intent= new Intent(this,MyActivity10.class);

b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(intent);
}
});
}

}

公共(public)类 MyActivity10 扩展 AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main10);
Button b=findViewById(R.id.btn_to_2);
final Intent intent= new Intent(this,MyActivity4.class);
// CLEAR_TOP
intent.addFlags(FLAG_ACTIVITY_CLEAR_TOP);
// CLEAR_TOP
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(intent);
}
});
}

}

最佳答案

我认为在开始任何 Activity 后,您应该使用 finish() 方法来关闭前一个 Activity 。那么我认为你开始另一个 Intent 不会有任何问题。

例如

b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(intent);
finish();
}
});

关于java - 使用标志 CLEAR_TOP 时后台堆栈中的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55933423/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com