2016-12-03 1 views
0

Я хочу создать push-уведомление, которое запрашивает устройство 2 раза в в неделю и направляет его в определенную активность. можете ли вы показать мне, как и в какой момент функции или алгоритм я должен использовать, чтобы реализовать это? благодаряAndroid - создайте push-уведомление, которое появляется дважды в неделю

NotificationCompat.Builder mBuilder = 
    new NotificationCompat.Builder(this) 
    .setSmallIcon(R.drawable.notification_icon) 
    .setContentTitle("Home Seek ") 
    .setContentText("View nearby available listings near you"); 

Intent resultIntent = new Intent(this, ResultActivity.class); 

PendingIntent resultPendingIntent = 
    PendingIntent.getActivity(
    this, 
    0, 
    resultIntent, 
    PendingIntent.FLAG_UPDATE_CURRENT 
); 

PendingIntent resultPendingIntent; 
... 
mBuilder.setContentIntent(resultPendingIntent); 
+0

пользователя и установки двух будильников на разное время в течение недели. –

+0

показать мне, как это сделать –

+0

ok позвольте мне собрать код для вас .... посмотрите на мой ответ –

ответ

0

Вот код, чтобы установить время уведомления для вашего уведомления ... вы будете получать уведомления, когда приложение закрыто, а также.

public class AlarmTiming { 
static AlarmManager alarmManager; 
static PendingIntent pendingIntent; 
static DatabaseAdapter databaseAdapter; 

static String[] pieces; 
/*..duration time for alarm to notify you every 3 days ... 
mean twice in a week.. you just have to set it again when notification is reached/alarmed 
for the next duration*/ 
static int alarmDuration = 72; 
public static void SetTwiceNotification(Context c) { 
    String formattedDate = new SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().getTime()); 
    pieces = formattedDate.split(":"); 
    Calendar calNow = Calendar.getInstance(); 
    Calendar calSet = (Calendar)calNow.clone(); 
    calSet.set(Calendar.HOUR_OF_DAY, Integer.parseInt(pieces[0])+alarmDuration); 
    calSet.set(Calendar.MINUTE, Integer.parseInt(pieces[1])); 
    calSet.set(Calendar.SECOND, 0); 
    calSet.set(Calendar.MILLISECOND, 0); 
    if(calSet.compareTo(calNow) <= 0) { 
     calSet.add(Calendar.DATE, 1); 
    } 
    setAlarm(calSet,c); 
} 
private static void setAlarm(Calendar targetCal,Context c) { 

    Intent intent = new Intent(c, AlarmBroadcaster.class); 
    //.. 
    pendingIntent = PendingIntent.getBroadcast(c, 1, intent,PendingIntent.FLAG_ONE_SHOT); 

    alarmManager = (AlarmManager) c.getSystemService(Context.ALARM_SERVICE); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, targetCal.getTimeInMillis(), pendingIntent); 
} 

Вот радиовещательный приемник класса получить уведомление ... менеджер сигнализации

public class AlarmBroadcaster extends BroadcastReceiver { 
Context context; 
String typeFlag; 
int flagId; 
@Override 
public void onReceive(Context context, Intent intent) { 
    this.context = context; 
    createNotification(context); 
    AlarmTiming.SetTwiceNotification(context); 
} 

public void createNotification(Context context) { 
    PendingIntent pendingIntent = PendingIntent.getActivity(context,0, new Intent(context,LoginActivity.class),0); 
    NotificationCompat.Builder builder = new NotificationCompat.Builder(context) 
      .setSmallIcon(R.drawable.notifi_righter_logo); 

    //... 
    NotificationCompat.InboxStyle inboxStyle = 
      new NotificationCompat.InboxStyle(); 
    String[] events = {"You are reminded to review your APP"}; 
    // Sets a title for the Inbox in expanded layout 
    inboxStyle.setBigContentTitle(" Notification !"); 

    // Moves events into the expanded layout 
    for (int i=0; i < events.length; i++) { 

     inboxStyle.addLine(events[i]); 
    } 
    // Moves the expanded layout object into the notification object. 
    builder.setStyle(inboxStyle); 

    builder.setContentIntent(pendingIntent); 
    builder.setDefaults(NotificationCompat.DEFAULT_SOUND); 
    builder.setAutoCancel(true); 

    NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 

    notificationManager.notify(1,builder.build()); 
} 

}

+0

дайте мне знать, если у вас есть какие-либо вопросы ...! –

+0

Что значит запрос? –

+0

означает ... если у вас есть вопрос о коде ... если вы не можете понять, что делает какая-либо функция :) –

 Смежные вопросы

  • Нет связанных вопросов^_^