📜  如何销毁 android 中的活动 - Java (1)

📅  最后修改于: 2023-12-03 15:24:57.406000             🧑  作者: Mango

如何销毁 Android 中的活动

在 Android 应用程序中,活动(Activity)是用户与应用程序交互的主要界面,如何正确的销毁活动是开发者必须掌握的技能之一。本篇文章将介绍如何销毁 Android 中的活动。

销毁活动的方法
通过 finish() 方法销毁

在一个活动中,如果调用了 finish() 方法,则可以销毁该活动。例如:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button finishButton = findViewById(R.id.finish_button);
        finishButton.setOnClickListener(view -> {
            finish(); // 销毁当前活动
        });
    }
}

在该例子中,我们在 MainActivity 中添加了一个按钮,当用户点击该按钮时,调用 finish() 方法销毁当前活动。

通过系统回收销毁

如果当前系统资源不足,系统会自动回收某些活动以释放资源。注意,在回收活动时,系统会按照先后顺序回收活动,因此必须优先释放掉处于栈顶的活动。

通过 onBackPressed() 方法销毁

在 Android 开发中,我们通常会通过点击手机的“返回”按键来销毁当前活动。这是因为在 Activity 类中,已经提供了 onBackPressed() 方法,用于监听手机“返回”按键的点击事件,而在该方法中,也可以通过调用 finish() 方法来销毁当前活动。例如:

public class MainActivity extends AppCompatActivity {

    @Override
    public void onBackPressed() {
        super.onBackPressed();
        finish(); // 销毁当前活动
    }
}

在该例子中,我们重写了 onBackPressed() 方法,点击手机“返回”按键时,就会执行该方法,从而销毁当前活动。

通过 flag 销毁活动

在 Android 中,我们可以通过 Intent 的 flag 参数来销毁某个活动。例如:

Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

在该例子中,我们通过 setFlags() 方法,将 Intent.FLAG_ACTIVITY_CLEAR_TOP 参数传递进去,该参数表示销毁当前活动之上的所有活动。这样,当 MainActivity 重新启动时,之前所有的活动都已经被销毁,从而达到销毁活动的目的。

总结

本篇文章介绍了四种销毁 Android 活动的方法,包括通过 finish() 方法、系统回收、onBackPressed() 方法和 flag。在实际开发中,我们需要根据具体情况选择适当的方法进行活动的销毁。