परिचय
कभी-कभी ऐप से पूरी तरह बाहर निकलने के लिए सभी एक्टिविटी को एक साथ बंद करने की आवश्यकता होती है। यह उदाहरण दिखाता है कि Kotlin में इसे कैसे प्राप्त करें।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में नया प्रोजेक्ट बनाएं।
चरण 2: पहली एक्टिविटी का लेआउट
res/layout/activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="4dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="70dp"
android:background="#008080"
android:padding="5dp"
android:text="TutorialsPoint"
android:textColor="#fff"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/button"
android:layout_marginBottom="20dp"
android:gravity="center"
android:text="एक्टिविटी वन"
android:textColor="@android:color/black"
android:textStyle="bold" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="दूसरी एक्टिविटी शुरू करें" />
</RelativeLayout>
चरण 3: MainActivity.kt
package com.example.q28
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private lateinit var button: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "KotlinApp"
button = findViewById(R.id.button)
button.setOnClickListener {
val intent = Intent(this@MainActivity, SecondActivity::class.java)
startActivity(intent)
}
}
}
चरण 4: दूसरी एक्टिविटी बनाएं
activity_second.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="4dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="70dp"
android:background="#008080"
android:padding="5dp"
android:text="TutorialsPoint"
android:textColor="#fff"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/terminateButton"
android:layout_marginBottom="20dp"
android:gravity="center"
android:text="एक्टिविटी टू"
android:textColor="@android:color/black"
android:textStyle="bold" />
<Button
android:id="@+id/terminateButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="सभी एक्टिविटी समाप्त करें" />
</RelativeLayout>
SecondActivity.kt:
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
import kotlin.system.exitProcess
class SecondActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
title = "KotlinApp"
val button: Button = findViewById(R.id.terminateButton)
button.setOnClickListener {
// वर्तमान एक्टिविटी समाप्त करें
finish()
}
}
override fun onDestroy() {
super.onDestroy()
// पूरी एप्लिकेशन प्रोसेस समाप्त करें
exitProcess(0)
}
}
चरण 5: AndroidManifest.xml
दोनों एक्टिविटी को मैनिफेस्ट में घोषित करना सुनिश्चित करें:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.q11">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity" />
</application>
</manifest>
महत्वपूर्ण नोट
exitProcess(0) का उपयोग करना आमतौर पर अनुशंसित नहीं है क्योंकि यह एंड्रॉइड के सामान्य लाइफसाइकिल को बायपास करता है। बेहतर दृष्टिकोण:
finishAffinity()(API 16+) का उपयोग करें - वर्तमान टास्क में सभी एक्टिविटी समाप्त करता है- या
ActivityCompat.finishAffinity(this)का उपयोग करें - या एक्टिविटी लॉन्च करते समय
FLAG_ACTIVITY_CLEAR_TASKऔरFLAG_ACTIVITY_NEW_TASKफ्लैग का उपयोग करें
ऐप चलाएं
पहली एक्टिविटी से दूसरी पर जाएं, फिर "सभी एक्टिविटी समाप्त करें" दबाकर ऐप से बाहर निकलें।