परिचय
`Activity.finish()` वर्तमान एक्टिविटी को समाप्त करता है, इसे बैक स्टैक से हटा देता है, और नियंत्रण पिछली एक्टिविटी (या होम स्क्रीन) पर वापस कर देता है। यह लेख दिखाता है कि `finish()` का उपयोग करके अगली एक्टिविटी पर जाने के बाद वापस आने पर ऐप कैसे बाहर निकलता है।
कार्यान्वयन
चरण 1: MainActivity लेआउट
<Button android:id="@+id/button" android:text="Next Activity" android:layout_centerVertical="true" ... />
चरण 2: MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button);
button.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, NewActivity.class);
startActivity(intent);
finish(); // MainActivity समाप्त करें
});
}
}चरण 3: NewActivity लेआउट और क्लास
// activity_new.xml: TextView "New Activity!" // NewActivity.java: मानक एक्टिविटी
चरण 4: मैनिफेस्ट में दोनों घोषित करें
<activity android:name=".NewActivity" /> <activity android:name=".MainActivity"> ... </activity>
व्यवहार
- उपयोगकर्ता MainActivity में "Next Activity" दबाता है।
- NewActivity शुरू होती है, MainActivity `finish()` के कारण नष्ट हो जाती है।
- NewActivity में बैक बटन दबाने पर, कोई पिछली एक्टिविटी नहीं होती, इसलिए ऐप होम स्क्रीन पर निकल जाता है।
मुख्य बिंदु
- `finish()` `onDestroy()` ट्रिगर करता है।
- एक्टिविटी को बैक स्टैक से हटा देता है।
- यदि यह टास्क की रूट एक्टिविटी थी, तो टास्क समाप्त हो जाता है।
- `finishAffinity()` पूरे टास्क को समाप्त करता है; `finishAndRemoveTask()` टास्क को रीसेंट से भी हटा देता है।