首页 > 解决方案 > 即使被 kotlin 杀死,我如何让应用程序继续工作

问题描述

我创建了接收和接收短信的应用程序,我想继续在后台工作,它只是接收并读取短信发送到服务器,即使它被杀死,我也需要继续在后台工作,我希望它在手机开机时自动启动上

显现

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

<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
<uses-feature
    android:name="android.software.leanback"
    android:required="true" />
<uses-feature
    android:name="android.hardware.touchscreen"
    android:required="false" />

<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/Theme.WebView"
    tools:ignore="MissingTvBanner">
    <activity
        android:name=".MainActivity"
        android:exported="true">
        <intent-filter>
            <category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <service android:name=".ExampleService" android:stopWithTask="false" />

</application>

示例服务

Class ExampleService : Service() {


    @RequiresApi(Build.VERSION_CODES.O)
    override fun onCreate() {
        super.onCreate()

    }

    override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {

        var bs:BroadcastReceiver = MyBroadcastReceiver()
        val filter = IntentFilter(Telephony.Sms.Intents.SMS_RECEIVED_ACTION).apply {
            addAction(Telephony.Sms.Intents.SMS_DELIVER_ACTION)
        }
        registerReceiver(bs,filter)
        return START_STICKY
    }

    override fun onBind(intent: Intent): IBinder? {

        return null
    }

    override fun onDestroy() {
    }
}

标签: androidkotlin

解决方案


推荐阅读