在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。

Android Studio Activity Finish 后输出 Yes 的实现方法

原文地址: https://www.cveoy.top/t/topic/pZQC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录