0

В моем приложении у меня есть TextField и кнопка. При нажатии «Сервис» должно начинаться считывание с текстового поля и запускать AlarmManager. Через несколько секунд Сервис должен сообщить BroadcastReceiver, что время закончилось. Я не знаю, что я делаю неправильно.Как вызвать сигнал тревоги с помощью AlarmManager?

Деятельность информирует сервис и передает стоимость. Я могу видеть Тост с правильным количеством второй и тостов RUN, но я не могу видеть тост: '' BroadcastReceiver

Услуги:

public class MyService extends Service { 

     @Override 
     public int onStartCommand(Intent intent, int flags, int startId) { 
      String data = (String) intent.getExtras().get("EXTRA_MESSAGE"); 
      int countTime = Integer.parseInt(data); 
      Toast tosty = Toast.makeText(this, data + " sec", Toast.LENGTH_SHORT); 
      tosty.show(); 

      Intent i = new Intent(this, MyReciver.class); 
      PendingIntent pintent = PendingIntent.getService(this.getApplicationContext(), 1000, i, 0); 
      AlarmManager alarm = (AlarmManager) getSystemService(ALARM_SERVICE); 
      alarm.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (countTime * 1000), pintent); 
      startService(i); 
      Toast tost = Toast.makeText(getApplicationContext(),  
       "RUN!", Toast.LENGTH_SHORT); 

      return Service.START_NOT_STICKY; 

     } 

BroadcastReceiver:

public class MyReciver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context arg0, Intent arg1) { 
     Toast tostyy = Toast.makeText(arg0, "BroadcastReciver!", Toast.LENGTH_LONG); 
     tostyy.show(); 
    } 
} 

Manifest:

<service 
    android:name="com.example.serwis.MyService" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/service_name" > 
</service> 

<receiver 
    android:name="com.example.serwis.MyReciver"> 
</receiver> 

ответ

0

Попробуйте изменить:

PendingIntent pintent = PendingIntent.getService(this.getApplicationContext(), 1000, i, 0); 

к:

PendingIntent pintent = PendingIntent.getBroadcast(this.getApplicationContext(), 1000, i, 0); 
Смежные вопросы