как запустить сервис в android без активности

Я новичок в android. У меня два класса, и первый класс -

public class SmsReceiver extends BroadcastReceiver{}

а второй класс -

public class SMS extends Activity{}

все, что я хочу сделать : когда я получаю SMS, начать деятельность и что-то сделать. Но я хочу использовать " сервис "вместо"активность". Я имею в виду, когда приложение запускается, а затем запускает службу без активности.

это возможно ?

3 ответов


запустите службу из SmsReceiver как:

public class SmsReceiver extends BroadcastReceiver{
@Override
   public void onReceive(Context context, Intent intent) {
      String action = intent.getAction();
      if(action.equals("android.provider.Telephony.SMS_RECEIVED")){
        //action for sms received

           // start service here
          Intent intent=new Intent(context,Your_Service.class);
          context.startService(intent);

      }
      else {

      }     
   }
}

и убедитесь, что вы зарегистрировали вашу службу в AndroidManifest.xml as:

<service android:name="com.xxx.xx.Your_Service" />

Да, вы можете сделать это, просто создав BroadCastReceiver, который вызывает вашу службу при загрузке приложения. Вот полный ответ, данный мной. Android-запуск службы при загрузке

Если вы не хотите какой-либо значок/запуска для вас приложения вы можете сделать это также, просто не создавать никаких действий с

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

просто объявите свою службу как обычно.


когда вы получили sms, вы можете начать свою службу с помощью широковещательного приемника

@Override
public void onReceive(Context context, Intent intent) {

        try {

            context.startService(new Intent(context,
                    YourService.class));
        } catch (Exception e) {
            Log.d("Unable to start ", "Service on ");
        }

и pls убеждаются что вы имеете упомянуть разрешение к вашему AndroidManifest.xml-файл

    <uses-permission android:name="android.permission.RECEIVE_SMS">

и для отправки и получения sms вы можете проверить этот учебник отправка sms в android