是否有人知道实现通知服务的方法,这将满足以下条件:
所以它是非常常见的功能,许多应用程序运行这样的服务(Facebook,Gmail,Tinder ......),但我找不到在Xamarin中实现这一点的方法。
目前我正在开发Android项目,我的问题是:
我试过了:
所有帮助将不胜感激!
答案 0 :(得分:1)
解决这个问题的一个好方法是将AlarmManager与服务结合起来: AlarmManager将确保您的任务将定期执行,即使您的应用程序已关闭(并且通过添加正确的接收器,即使重启后)
然后它可以调用具有意图的服务,服务可以在后台完成工作
这样,您可以定期在后台执行任务
只需查看AlarmManager documentation
即可注册警报可以通过这种方式完成(这是Java语法,但在Xamarin中存在相同的一个):
private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
...
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, AlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + AlarmManager.INTERVAL_HALF_HOUR,
AlarmManager.INTERVAL_HALF_HOUR, alarmIntent);
然后在你的AlarmReceiver中(不要忘记在清单中声明它)你可以启动,例如,一个IntentService:
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//call your service here
}
}
}
注意:如果你希望你的任务在后台执行,你可能需要使用wake_lock但是需要另一个线程来解释