Я создаю приложение для обмена сообщениями, для которого мне нужна служба для получения сообщений, даже когда приложение закрыто или открыто, у меня есть широковещательный приемник для получения SMS, и я создал класс обслуживания и начал в своем mainActivity как
Intent mIntent=new Intent(this,BackgroundService.class);
startService(mIntent);
и в манифесте я добавил службу как
<service android:name=".BackgroundService"
android:enabled="true"/>
BroadReceiver класс
@Override
public void onReceive(Context context, Intent intent) {
Bundle intentExtras = intent.getExtras();
if (intentExtras != null) {
Object[] sms = (Object[]) intentExtras.get(SMS_BUNDLE);
String smsMessageStr = "";
for (int i = 0; i < sms.length; ++i) {
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[])
sms[i]);
smsBody = smsMessage.getMessageBody().toString();
address = smsMessage.getOriginatingAddress();
smsMessageStr += "SMS FROM :" + address + "\n";
smsMessageStr += "Message :" + smsBody + "\n";
}
Toast.makeText(context, smsMessageStr,
Toast.LENGTH_LONG).show();
backgroundService.java
public class BackgroundService extends Service{
private SmsBroadcastReceiver mSmsBroadcastReceiver;
private IntentFilter mIntentFilter;
private static final int NOTIFICATION_ID = 999;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
mSmsBroadcastReceiver=new SmsBroadcastReceiver();
mIntentFilter=new IntentFilter();
mIntentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
mIntentFilter.setPriority(999);
registerReceiver(mSmsBroadcastReceiver,mIntentFilter);
return START_STICKY;
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
Я ПОПРОБОВАЛ службу переднего плана также как
Notification notification = new NotificationCompat.Builder(this)
.setContentTitle("TutorialsFace Music Player")
.setTicker("TutorialsFace Music Player")
.setContentText("My song")
.setSmallIcon(R.mipmap.ic_launcher)
.build();
startForeground(NOTIFICATION_ID,
notification);
но как только я закрываю свое приложение из недавних приложений, служба также останавливается, и когда я перезапускаю свое приложение, служба запускается
как сделать так, чтобы моя служба просуществовала долго, даже когда приложение закрыто. Поскольку мое приложение основано на SMS, поэтому без службы я не могу получать сообщения, пока мое приложение закрыто, любая помощь будет оценена заранее, заранее спасибо.