如果清除最近的应用程序,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 对您的应用做了什么,您的应用都将继续 运行。
我的应用程序在 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 对您的应用做了什么,您的应用都将继续 运行。