【发布时间】:2016-04-18 05:13:33
【问题描述】:
我创建了一个依赖项来显示通知
在我的 DeviceDetails_Droid.cs 中,我设置了 30 秒的闹钟
本地通知功能在应用程序启动时完美运行 活动但当我杀死应用程序(关闭应用程序)警报接收器 没有被调用。
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);
}
- 在 Android 的 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);
}
}
- 在清单文件中
<receiver
android:name=".AlarmReceiver"
android:enabled="true"
android:exported="true"
android:process=":remote"
android:label="AlarmReceiver">
- 上述代码在app处于运行状态时完美运行 但是当应用程序关闭或终止时通知不起作用
【问题讨论】:
-
您需要实现后台服务,使其在应用程序被杀死或关闭后工作。请参考:stackoverflow.com/a/34207954/6127411.
-
在清单
标签: android xamarin xamarin.android local