Android Studio Activity Finish 后输出 Yes 的实现方法
在Activity的finish()方法调用之后,Activity的生命周期会经历onStop()、onDestroy()等阶段,因此不能直接在finish之后立即输出yes。但是可以在finish()方法调用之前,先设置一个标志位,在Activity的onStop()或onDestroy()方法中判断该标志位,如果为true,则输出yes。具体实现如下:
public class MainActivity extends AppCompatActivity {
private boolean isFinishCalled = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 设置一个按钮用于触发finish
Button finishButton = findViewById(R.id.finish_button);
finishButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 设置标志位为true
isFinishCalled = true;
finish();
}
});
}
@Override
protected void onStop() {
super.onStop();
// 判断标志位,如果为true,则输出yes
if (isFinishCalled) {
Log.d("MainActivity", "yes");
}
}
}
在上述代码中,当点击一个按钮触发finish()方法时,会将isFinishCalled标志位设置为true,然后调用finish()方法。在Activity的onStop()方法中,判断isFinishCalled的值是否为true,如果为true,则输出yes。
原文地址: https://www.cveoy.top/t/topic/pZQC 著作权归作者所有。请勿转载和采集!