خب من خودم تونستم این کار رو انجام بدم گفتم اینجا نحوه کار رو توضیح بدم که بعدا دوستان استفاده کنن
با استفاده از service و alarmManager تعیین میکنیم که مثلا هر روز ساعت 12:10 نوتیفیکیشن نمایش داده بشه به کاربر:
این کد رو جایی که میخوایم نمایش نوتفیکیشن رو فعال کنیم مینویسیم مثلا تو رویداد کلیک یه دکمه:
حالا باس یه سرویس ایجاد کنیم که کد نمایش نوتفیکیشن داخلش هست :
یه کلاس جاوا ایجاد میکنیم و کد زیر رو مینویسیم :
تموم شد
با استفاده از service و alarmManager تعیین میکنیم که مثلا هر روز ساعت 12:10 نوتیفیکیشن نمایش داده بشه به کاربر:
این کد رو جایی که میخوایم نمایش نوتفیکیشن رو فعال کنیم مینویسیم مثلا تو رویداد کلیک یه دکمه:
کد پیاچپی:
PendingIntent pendingIntent;
Intent myIntent = new Intent(this , MyService.class);
//است MySevice اسم سرویسی که قراره کد نمایش نوتیفیکیشن رو داخلش بنویسم
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
pendingIntent = PendingIntent.getService(this, 0, myIntent, 0);
Calendar calendar = Calendar.getInstance();
//اینجا تعیین میکنیم که ساعت 12:10:59 نوتیفیکیشن نمایش داده بشه
//البته خیلی دقیق نیست حدودی هستش
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 10);
calendar.set(Calendar.SECOND,59);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24 * 60 * 60 * 1000, pendingIntent);//اینجا هم میگیم که هر 24 ساعت یکبار دوباره نمایش داده بشه
حالا باس یه سرویس ایجاد کنیم که کد نمایش نوتفیکیشن داخلش هست :
یه کلاس جاوا ایجاد میکنیم و کد زیر رو مینویسیم :
کد پیاچپی:
public class MyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.Icon)
.setContentTitle("خخخخخخخخخخ")
.setContentText("خخخخخخخخخخخ")
.setAutoCancel(true);
intent = new Intent(this, Activity.class);//اینجا هم که میگیم بعد از کلیک رو نوتیفیکیشن به اکتیویتی مورد نظر تشریف ببرد
PendingIntent pi = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(pi);
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0, mBuilder.build());
return Service.START_FLAG_REDELIVERY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
تموم شد