我正在尝试创建一个后台调度程序,它将定期在服务器上发送数据。因为我已经在android中创建了服务,它将在1分钟后使用Xamarin.Forms
向MessageCenter
发送消息,以便它可以将数据发送到服务器。
与向服务器发送数据相关的代码位于Xamarin.Forms
,因此我通过MessageCenter
从Xamarin.android
与Xamarin.Forms
进行通信
当应用程序处于前台时,但是当我从最近删除应用程序时,它运行良好。
在MessageCenter
中订阅的 Xamarin.Forms
因此在Xamarin.Android
发布活动到Xamarin.Forms
时服务时没有人在那里听,因为我的数据没有发布到切断
订阅MessageCenter的Xamarin.Forms代码
public void subscribeSyncScheduler()
{
MessagingCenter.Subscribe<IMessage, EventType>(this, RestApi.SYNC_SCHEDULER_EVENT, (sender, arg) =>
{
//SYNC DATA TO SERVER
});
}
服务给Xamarin.Forms带来了事件
public override StartCommandResult OnStartCommand(Intent intent, [GeneratedEnum] StartCommandFlags flags, int startId)
{
Log.Error(TAG, "Sync: Service gets called ");
MessagingCenter.Send<IMessage, EventType>(this, RestApi.SYNC_SCHEDULER_EVENT, null);
}
答案 0 :(得分:0)
参考http://arteksoftware.com/backgrounding-with-xamarin-forms/
使用Android后台服务&amp; iOS背景线程 使用Dependency Service即使在应用程序最小化或被杀之后也可以运行任务