Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Kotlin का उपयोग करके एंड्रॉइड ऐप में बूट टाइम पर सर्विस कैसे शुरू करें?

परिचय

यह उदाहरण दर्शाता है कि Kotlin का उपयोग करके एंड्रॉइड ऐप में बूट कम्प्लीट होने पर सर्विस कैसे शुरू की जाए। इसके लिए BOOT_COMPLETED ब्रॉडकास्ट रिसीवर की आवश्यकता होती है।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio खोलें, File → New Project पर जाएं और नया प्रोजेक्ट बनाने के लिए सभी आवश्यक विवरण भरें।

चरण 2: लेआउट XML कॉन्फ़िगर करें

res/layout/activity_main.xml में निम्नलिखित कोड जोड़ें:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="4dp"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:text="Tutorials Point"
        android:textAlignment="center"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="32sp"
        android:textStyle="bold" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="हैलो वर्ल्ड"
        android:textColor="@android:color/background_dark"
        android:textSize="24sp"
        android:textStyle="bold" />

</RelativeLayout>

चरण 3: सर्विस क्लास बनाएं

RunServiceOnBoot.kt नाम से एक नई Kotlin क्लास बनाएं और निम्नलिखित कोड जोड़ें:

import android.app.Service
import android.content.Intent
import android.os.Handler
import android.os.IBinder
import android.util.Log
import android.widget.Toast

class RunServiceOnBoot : Service() {
    private val TAG = "MyService"
    private lateinit var handler: Handler
    private lateinit var runnable: Runnable
    private val runTime = 5000L

    override fun onCreate() {
        super.onCreate()
        Toast.makeText(this, "सर्विस शुरू हुई", Toast.LENGTH_SHORT).show()
        Log.i(TAG, "onCreate")
        handler = Handler()
        runnable = Runnable { handler.postDelayed(runnable, runTime) }
        handler.post(runnable)
    }

    override fun onBind(intent: Intent?): IBinder? = null

    override fun onDestroy() {
        handler.removeCallbacks(runnable)
        super.onDestroy()
    }

    override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
        return START_STICKY
    }

    override fun onStart(intent: Intent?, startId: Int) {
        super.onStart(intent, startId)
        Log.i(TAG, "onStart")
    }
}

चरण 4: ब्रॉडकास्ट रिसीवर बनाएं

StartAppOnBoot.kt नाम से एक नई Kotlin क्लास बनाएं और निम्नलिखित कोड जोड़ें:

import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent

class StartAppOnBoot : BroadcastReceiver() {
    override fun onReceive(context: Context?, intent: Intent?) {
        if (Intent.ACTION_BOOT_COMPLETED == intent?.action) {
            val i = Intent(context, MainActivity::class.java).apply {
                addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
            }
            context!!.startActivity(i)
        }
    }
}

चरण 5: MainActivity में सर्विस शुरू करें

src/MainActivity.kt में निम्नलिखित कोड जोड़ें:

import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        val intent = Intent(this, RunServiceOnBoot::class.java)
        startService(intent)
    }
}

चरण 6: मैनिफेस्ट में परमिशन और कंपोनेंट रजिस्टर करें

androidManifest.xml में निम्नलिखित कोड जोड़ें:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.com.q9">

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <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>
        
        <receiver android:name=".StartAppOnBoot">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.QUICKBOOT_POWERON" />
            </intent-filter>
        </receiver>
        
        <service android:name=".RunServiceOnBoot" />
    </application>
</manifest>

नोट

सर्वोत्तम परिणाम के लिए इसे अपने वास्तविक डिवाइस पर आज़माएं। एमुलेटर पर बूट कम्प्लीट ब्रॉडकास्ट हमेशा काम नहीं करता।

  1. Android ऐप में बूट पर सर्विस कैसे शुरू करें? Android ऐप में बूट पर सर्विस कैसे शुरू करें?

    बूट पूर्ण होने पर सर्विस शुरू करना यह उदाहरण दर्शाता है कि BOOT_COMPLETED ब्रॉडकास्ट प्राप्त करके डिवाइस बूट होने पर बैकग्राउंड सर्विस कैसे शुरू करें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: सिंपल लेआउट (activity_main.xml) <?xml version=1.0 encoding=utf-8?

  1. Android ऐप को बूट पर ऑटो-स्टार्ट कैसे करें? Android ऐप को बूट पर ऑटो-स्टार्ट कैसे करें?

    बूट पर ऐप लॉन्च करना यह उदाहरण दर्शाता है कि डिवाइस बूट होने पर मुख्य एक्टिविटी को स्वचालित रूप से कैसे लॉन्च किया जाए। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project से प्रोजेक्ट बनाएं। चरण 2: लेआउट (activity_main.xml) <?xml version=1.0 encoding=utf-8?> <RelativeLayout

  1. Android में बटन से होम स्क्रीन पर कैसे जाएं? Android में बटन से होम स्क्रीन पर कैसे जाएं?

    बटन क्लिक पर होम स्क्रीन लॉन्च करना यह उदाहरण दर्शाता है कि Intent.ACTION_MAIN और CATEGORY_HOME का उपयोग करके ऐप से डिवाइस की होम स्क्रीन पर कैसे जाएं। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project से प्रोजेक्ट बनाएं। चरण 2: लेआउट में बटन (activity_main.xml) <?xml version=1.0