在Android開發(fā)中,finish()
方法是用于關(guān)閉當(dāng)前活動的。以下是如何正確調(diào)用finish()
方法的步驟:
finish()
方法。Android不允許在非主線程中直接操作UI組件。Activity
類的getCurrentActivity()
方法(如果你在使用Fragment)或者直接持有當(dāng)前活動的引用(如果你在Activity中)來獲取當(dāng)前活動的實例。finish()
方法來關(guān)閉活動。示例代碼:
// 假設(shè)你有一個名為MyActivity的Activity類
public class MyActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
// 關(guān)閉當(dāng)前活動
finish();
}
}
如果你在使用Fragment,你可以這樣做:
public class MyFragment extends Fragment {
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// 獲取當(dāng)前Fragment的活動引用
Activity activity = getActivity();
if (activity != null) {
// 關(guān)閉當(dāng)前活動
activity.finish();
}
}
}
請注意,如果你在一個Activity中調(diào)用finish()
方法,那么該Activity將會被銷毀,并且用戶將無法通過返回鍵返回到該Activity。如果你在一個Fragment中調(diào)用finish()
方法,那么該Fragment將會被銷毀,但是該Fragment所在的Activity可能不會被銷毀,除非該Activity沒有其他Fragment。