Добрый вечер. Мне нужно создать сервис, который каждые 1-3 минуты проверял бы наличие новых личных сообщений. (приложение-клиент сайта) Написать саму проверку на наличие новых сообщений могу без проблем, но не понимаю как сделать такой сервис и реализовать в нем создание уведомлений.
Перепробовал кучу способов, но все вызывают ошибку, чаще всего связанную с PendingIntent, потому что при нажатии на уведомление нужно сделать переход на новую активность.
Вызываю так, в маинАктивити:
private void restartNotify() {
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, TimeNotification.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
intent, PendingIntent.FLAG_CANCEL_CURRENT );
am.cancel(pendingIntent);
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 5000, pendingIntent);
}
Сам код класса:
public class TimeNotification extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, new Intent(context, mainfeed.class), 0);
Resources res = context.getResources();
Notification.Builder builder = new Notification.Builder(context)
.setLargeIcon(BitmapFactory.decodeResource(res, R.drawable.mediumico))
.setContentTitle("My App")
.setContentText("TextAllers")
.setContentIntent(contentIntent)
.setSmallIcon(R.drawable.mediumico)
.setAutoCancel(true);
NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = builder.getNotification();
notificationManager.notify(333, notification);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,
intent, PendingIntent.FLAG_CANCEL_CURRENT);
am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 180000, pendingIntent);
}
Надеюсь на вашу помощь, нужен простой пример создания уведомлений из сервиса и автоматический запуск сервиса каждые 1-3 минуты. Я потратил на поиски кучу времени, а толку 0. Заранее огромное спасибо.