2017-05-05 57 views
2

我想创建一个后台调度将在服务器发送数据定期。因为我已经在android中创建了服务,它将在1分钟后使用MessageCenterXamarin.Forms发送消息,以便它可以将数据发送到服务器。保持MessageCenter活着的时候,应用程序中删除最近

涉及将数据发送到服务器的代码驻留到Xamarin.Forms因此我正在通过MessageCenterXamarin.android传达给Xamarin.Forms

它运作良好,当应用程序在前台,但是当我从最近删除的应用程序。

MessageCenterXamarin.Forms订阅,因此当在Xamarin.Android事件后服务Xamarin.Forms后,没有人在那里听,并由于我的数据没有得到张贴在服务器上。

Xamarin.Forms代码认购MessageCenter

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

使用依赖参见http://arteksoftware.com/backgrounding-with-xamarin-forms/

使用Android的后台服务& iOS的后台线程 即使应用程序最小化或死亡后,服务也能运行任务

+0

他们也正在使用MessageCenter和应用进行了删除的时候写的代码在那篇文章中不会工作,所以这个环节没有帮助我 – Hunt

+0

没有必要使用MessagingCenter你可以使用相关服务(指HTTPS调用平台特定的方法从便携式项目: //forums.xamarin.com/discussion/17284/call-platform-apis-via-shared-services的依存服务为例) –

+0

所以你的意思是说,如果我使用事件处理器则它不会死的时候,我会删除我的应用程序最近? – Hunt

相关问题