Android: уведомление в сервисе не работает - PullRequest
0 голосов
/ 10 июля 2011

Я хочу отправить уведомление в определенное время дня. У меня есть этот код, но я никогда не получаю уведомление. Есть идеи?

* Примечание: части кода полностью удалены. Я использую эти части для изменения текста в виджете (у меня есть виджет для приложения), и я использую те же переменные, объявленные в коде (month_tod и day_tod), и эта часть кода работает нормально.

public final class UpdateService extends Service {

    @Override
    public void onStart(Intent intent, int startId) {

        final Calendar today = Calendar.getInstance(); 
        int month_tod = today.get(Calendar.MONTH)+1; 
        int day_tod = today.get(Calendar.DAY_OF_MONTH);
        int hour_tod = today.get(Calendar.HOUR);
        int min_tod = today.get(Calendar.MINUTE);

    if ((month_tod==7) && (day_tod==10) && (hour_tod==11) && (min_tod==29))
    {

    NotificationManager mNotManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    String MyText = "Reminder";
    Notification mNotification = new Notification(
         R.drawable.icon,                
         MyText,                         
         System.currentTimeMillis()       );

    String name;
    name = "Demoname";
    String MyNotifyTitle ="Don’t forget";
    String MyNotifiyText  = "Take your medicine";
    Intent MyIntent = new Intent( getApplicationContext(), MainActivity.class ); 
    MyIntent.putExtra("extendedTitle", MyNotifyTitle);
    MyIntent.putExtra("extendedText" , MyNotifiyText);
    PendingIntent StartIntent = PendingIntent.getActivity(getApplicationContext(),0,MyIntent,PendingIntent.FLAG_CANCEL_CURRENT);

    mNotification.setLatestEventInfo(   getApplicationContext(),
          MyNotifyTitle,
          MyNotifiyText,
          StartIntent);
    int HELLO_ID = 1;
    mNotManager.notify(  HELLO_ID , mNotification );  
    }
    }   

    public void onCreate(Bundle savedInstanceState) {

    }

  }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
}

Ответы [ 2 ]

0 голосов
/ 06 июня 2013

пожалуйста, попробуйте переместить коды в onStartCommand (). Согласно документу Android, onStart () устарела.

http://developer.android.com/reference/android/app/Service.html#onStart(android.content.Intent,%20int)

0 голосов
/ 10 июля 2011

С чего началась ваша служба?Вам нужно использовать AlarmManager, чтобы запускать его каждые x секунд / минут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...