我做了两次测试活动。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this, SubActivity.class));
}
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
MainActivity中的此按钮可以启动SubActivity。
public class SubActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
...
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
public void onBackPressed() {
startActivity(new Intent(SubActivity.this, MainActivity.class));
}
}
在SubActivity中时,按返回按钮,它不会在SubActivity类中调用onDestroy()
并启动MainActivity。我想做的是,完成MainActivity后如何调用SubActivity onDestroy()
?当我在MainActivity中按“后退”按钮时,它不会调用SubActivity onDestroy()
。有没有使用Intent.FLAG_ACTIVITY
的解决方案?
在Java中:-
Intent i = new Intent(OldActivity.this, NewActivity.class);
// set the new task and clear flags
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
在Kotlin:-
val i = Intent(OldActivity.this, NewActivity::class.java)
// set the new task and clear flags
i.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
startActivity(i)