2016-03-16 4 views
-2

Я хочу запустить оповещение по android, зависит от даты и времени, которое задает пользователь Я знаю, как я могу начать уведомление с активности, но я думаю, что не то, что я ищу, Может ли кто-нибудь помочь мне с некоторыми кодами?Уведомление о запуске зависит от пользовательского ввода

+0

использовать AlarmManager сделать в определенное время: https://developer.android.com/reference/android/app/AlarmManager.html – Budius

ответ

0

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

public class TimerReceiverSyncInterval extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 

    Log.d("TAG", "Sync OnReceive--"); 



    scheduleAlarms(context); 
    context.startService(new Intent(context, NotificationServiceSyncInterval.class)); 

} 

public static void scheduleAlarms(Context paramContext) { 

    Calendar calendar = Calendar.getInstance(); 

    String[] splited = Utility.mPrefs.getSyncTime().split("\\s+"); 
    if (Utility.mPrefs.getSyncTime().contains("Minute")) { 

     calendar.set(Calendar.MINUTE, Integer.parseInt(splited[0])); 
    } else if (Utility.mPrefs.getSyncTime().contains("Hour")) { 
     calendar.set(Calendar.HOUR, Integer.parseInt(splited[0])); 
    } 

    AlarmManager localAlarmManager = (AlarmManager) paramContext.getSystemService(Context.ALARM_SERVICE); 
    PendingIntent localPendingIntent = PendingIntent.getService(paramContext, 0, 
      new Intent(paramContext, NotificationServiceSyncInterval.class), PendingIntent.FLAG_UPDATE_CURRENT); 

    if (Utility.mPrefs.getSyncTime().contains("Minute")) { 

     localAlarmManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), 
       Integer.parseInt(splited[0]) * (60 * 1000), localPendingIntent); 

    } else if (Utility.mPrefs.getSyncTime().contains("Hour")) { 

     localAlarmManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(), 
       Integer.parseInt(splited[0]) * (60 * 60 * 1000), localPendingIntent); 

    } 


} 

} 

И для уведомления ручки/вызова

public class NotificationServiceSyncInterval extends IntentService { 

public NotificationServiceSyncInterval() { 
    super("Sync Tracker Online"); 

} 

public NotificationServiceSyncInterval(String paramString) { 
    super(paramString); 

} 

@Override 
protected void onHandleIntent(Intent intent) { 
    Log.d("TAG", "Sync Handler call"); 
     callNotification(); 

} 

public static void callNotification() { 
    //Notification code 
} 
} 
+0

спасибо, но что здесь означает Утилита? – user3604741

+0

Это просто пример вашего понимания, не точный, что вы хотите, вы можете избежать моего локального класса Utility и просто рассмотреть свой пользовательский ввод для установки тревоги, а еще одна вещь сказать спасибо в комментарии не очень хорошо в стеке, если это помогает просто принять знак или повышать его. –

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