开发者

Android: notification in service not workiong

开发者 https://www.devze.com 2023-03-18 23:38 出处:网络
I want to fire a notification in certain times of a day. I am having this code but i never get the notification. Any ideas?

I want to fire a notification in certain times of a day. I am having this code but i never get the notification. Any ideas?

*Note: parts of the whole code are deleted. I use that parts to change texts on the widget (I have a widget for the app), and I am using the same variables declared in the code (month_tod and day_tod) and that part of the code is working fine.

public final class UpdateService extends Service {

    @Override
    public void onStart(Intent i开发者_JAVA百科ntent, 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;
    }
}


Where is your service started from ? You need to use the AlarmManager in order to start it each x seconds/minutes.


please try to move codes into onStartCommand(). According to android doc, onStart() is deprecated.

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

0

精彩评论

暂无评论...
验证码 换一张
取 消