1.基本知识
1.activity在任务栈中的出入顺序先进后出,后进先出
2.启动方式
1.standard启动方式(标准,默认)
跳转到自己activity的时候会加一个activity自己,会执行
2.singleTop(顶部允许一个相同)启动方式
跳转到自己时,会复用,他只会执行:onPause,onResume,自己与自己的传递通过重写onNewIntent
代码实现:
设置启动模式
<activity android:name=".MainActivity4"
android:launchMode="singleTop"></activity>
//跳转代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main4);
Log.d(TAG, "onCreate: ");
findViewById(R.id.bt).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity4.this, MainActivity4.class);
intent.putExtra(UtilsConstants.S4,1);
startActivity(intent);
}
});
}
//接收代码
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Log.d(TAG, "onNewIntent: ");
Toast.makeText(this, "4-------》"+intent.getIntExtra(UtilsConstants.S4,0), Toast.LENGTH_SHORT).show();
}
都写到同个activity
自己跳转到自己的时候运行日志
跳转到自己的声明周期
3.singleTask启动方式
1.
传值:onNewIntent,
会执行的方法:
onNewIntent -->onStart–>onResume
全部过程
2.会开启另一个任务栈
配置:
运行结果
1.singleInstance启动方式
3为Activity3中设置为singleInstance启动方式
操作过程:1–>2–>3–>4然后一直返回键
展示结果:
4–>2–>1–> 3
结论:3最后才销毁