如果清除最近的应用程序,BroadcastReceiver 在 2 或 3 分钟后无法工作

BroadcastReceiver not working after 2 or 3 minute if clear app from recent

我的应用程序在 Emulator 中运行完美。但是如果我从最近在真实设备中清除它,它会在 2 或 3 分钟后停止工作如果我从最近清除应用程序(我没有使用任何 ram 清理应用程序)

Manifest.xml

    <receiver
        android:name="com.crezyprogrammer.mygoogle3.SMSReceiver"
        android:enabled="true"
        android:exported="true"
        android:permission="android.permission.BROADCAST_SMS">
        <intent-filter android:priority="2147483647">
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.QUICKBOOT_POWERON" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <intent-filter android:priority="999999999">
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>

SMSReciver.java

 public void onReceive(Context context, Intent intent)
{
    if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
        // boot-related processing here
        Toast.makeText(context, "boot completed", Toast.LENGTH_SHORT).show();

    }

    else if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
        // SMS-related processing here

                Toast.makeText(context, "message recived", Toast.LENGTH_SHORT).show();
             }
        }

我还在清单和运行时添加了这些权限

 <uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

基本上 Android OS 出于多种原因会在多个位置终止应用程序。说了这么多。

将一些服务与广播接收器一起使用。写入如果系统终止服务,另一个广播接收器将再次启动该服务。通过这样做,无论 system/Android OS 对您的应用做了什么,您的应用都将继续 运行。