我正在尝试创建一个应用程序,该应用程序需要在应用程序未运行时向用户发送通知。我正在用一个广播接收器来做这件事,它会在日期改变时开始工作。这意味着当日期改变时,广播接收器使用处理程序来发送通知。当应用程序运行时,它可以完美地工作,但是,当应用程序不运行时,广播接收器不工作,并且notfication不被发送。
代码如下:
首先,在清单中,我有:
<receiver android:name=".MyBroadcastRecieverDate" >
<intent-filter>
<action android:name="android.intent.action.DATE_CHANGED" />
</intent-filter>
</receiver>在主要活动中,我构建并注册广播接收器:
this.recieverDate = new MyBroadcastRecieverDate();
protected override void OnResume()
{
base.OnResume();
RegisterReceiver(recieverDate, new IntentFilter(Intent.ActionDateChanged));
}这是接收器的类:
[BroadcastReceiver(Enabled = true)]
[IntentFilter(new[] { Intent.ActionDateChanged })]
class MyBroadcastRecieverDate : BroadcastReceiver
{
MyHandler handler;
public MyBroadcastRecieverDate()
{
}
public override void OnReceive(Context context, Intent intent)
{
if(intent.Action.Equals(Intent.ActionDateChanged))
{
handler = new MyHandler(context);
Message msg = new Message();
msg.Obj = "";
msg.Arg1=1;
handler.SendMessage(msg);
}
}
}如果有人可以帮助我,告诉我如何让接收器工作,即使应用程序不运行,这将对我有很大帮助。谢谢。
发布于 2020-06-12 17:32:25
在Android8.0之前,我们可以使用Service在后台激活应用程序/关闭应用程序,请检查此answer。
然而,从8.0开始,安卓限制了后台执行,安卓应用程序不再具有在后台自由运行的能力,为了执行后台工作,有几种替代服务,我建议你看看Foreground Services。
https://stackoverflow.com/questions/62340858
复制相似问题