Ho creato un dependencie per mostrare le notificheSchedule notifica utilizzando direttore di allarme in forme Xamarin per Android
In My DeviceDetails_Droid.cs ho impostato impostare l'allarme per 30 secondi
Il la funzionalità per la notifica locale funziona perfettamente quando l'app è attiva ma quando ho ucciso l'app (chiudi app) il ricevitore di allarme non è stato chiamato.
public void ShowNotification(string message, string title)
{
Intent alarmIntent = new Intent(Forms.Context, typeof(AlarmReceiver));
alarmIntent.PutExtra ("message", message);
alarmIntent.PutExtra ("title", title);
PendingIntent pendingIntent = PendingIntent.GetBroadcast(Forms.Context, 0, alarmIntent, PendingIntentFlags.UpdateCurrent);
AlarmManager alarmManager = (AlarmManager) Forms.Context.GetSystemService(Context.AlarmService);
//TODO: For demo set after 5 seconds.
alarmManager.Set(AlarmType.RtcWakeup, DateTime.Now.Millisecond + 30000, pendingIntent);
}
- In Androids MainActivity
[BroadcastReceiver]
public class AlarmReceiver : BroadcastReceiver
{
public override void OnReceive (Context context, Intent intent)
{
var message = intent.GetStringExtra ("message");
var title = intent.GetStringExtra ("title");
var notIntent = new Intent (context, typeof(MainActivity));
var contentIntent = PendingIntent.GetActivity (context, 0, notIntent, PendingIntentFlags.CancelCurrent);
var manager = NotificationManagerCompat.From (context);
var style = new NotificationCompat.BigTextStyle();
style.BigText(message);
//Generate a notification with just short text and small icon
var builder = new NotificationCompat.Builder (context)
.SetContentIntent (contentIntent)
.SetSmallIcon (Resource.Drawable.Icon)
.SetContentTitle (title)
.SetContentText (message)
.SetStyle (style)
.SetWhen (Java.Lang.JavaSystem.CurrentTimeMillis())
.SetAutoCancel (true);
var notification = builder.Build();
manager.Notify(0, notification);
}
}
- E nel file manifesto
<receiver
android:name=".AlarmReceiver"
android:enabled="true"
android:exported="true"
android:process=":remote"
android:label="AlarmReceiver">
- Il codice di cui sopra è in esecuzione perfettamente quando applicazione è in stato in funzione ma la notifica non funziona quando applicazione è chiusa o ucciso
è necessario implementare Background Servizio per farlo funzionare dopo l'applicazione viene ucciso o chiuso. Fai riferimento a questo: http://stackoverflow.com/a/34207954/6127411. –
In Manifest –
user797725