1.首先我们要知道,我们利用什么样的启动模式。如果是标准的启动模式,会出现下面的情况:在多次跳转页面之后,实际上是不断的打开页面一和页面二。栈内情况如下:
十分的浪费资源,而且返回的时候会一直返回很多次才能到桌面,这不符合我们开发的逻辑。
2.两种方式实现我们想要的结果
第一种是,修改配置文件中的activity的launchMode属性,改为栈顶复用模式 singleTop
第二种是,利用代码的方式,灵活的设置两个activity的启动模式。
布局代码:
//页面一//页面二
Java代码:
//页面一
package com.example.helloworld;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.b1).setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent=new Intent(this,Activity_two.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
}
//页面二
package com.example.helloworld;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public class Activity_two extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.two);
findViewById(R.id.b2).setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent=new Intent(this,MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
}



