使用标志CLEAR_TOP时在后台活动 - java

我完成了与android中的意图标志相关的家庭任务,并创建了10个活动,每个活动随后都调用下一个活动(MainActivity打开activity2,activity2调用activity3等)。第10个活动使用标志CLEAR TOP调用activity4,所以我猜想,第4个活动出现在屏幕上之后,我不应该返回第10个活动,但是我还是这样做了。有趣的是,当我从第4个导航到第5个活动(经过10个之后)并向后导航时,我的堆栈被清除了,我回到了第3个堆栈(但不是第10个)。如何将这种行为应用到第四项活动本身,而无需再次进入第五项?

公共类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);
        }
    });
}

}

公共类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);
        }
    });
}

}

参考方案

我认为在开始任何活动之后,您应该使用finish()方法关闭上一个活动。然后我认为您开始其他意图没有任何问题。

例如

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

java:继承 - java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…

Java-如何将此字符串转换为日期? - java

我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…

JAVA 8具有任何匹配属性的对象的过滤器列表 - java

我的要求是通过匹配任何属性的字符串来过滤对象列表。例如,假设Contact类具有三个属性:街道,城市,电话。我知道java流过滤器是如何工作的,在这里我必须将输入字符串与每个属性进行比较,如下所示:contactList.stream().filter(contact -> contact.getStreet().equals("dubai&…

Java-固定大小的列表与指定初始容量的列表之间的差异 - java

我在理解这一点上遇到了问题。当我们做 List<Integer> list = Arrays.asList(array); 我们不能在该列表上使用添加,删除之类的方法。我知道Arrays.asList()返回固定大小的列表。我不明白的是,如果我们创建一个具有指定初始容量的列表,例如List<Integer> list2 = new A…

从方法返回数组-Java - java

private static Coordinate[] getCircleCoordintaes() { Coordinate coordinates[] = {new Coordinate(0, 0)}; return coordinates; } 以上程序工作正常。在上面的程序中,返回的坐标数组首先初始化了数组使用这条线Coordinate coordi…