我的PCL中定义了一个方法PostToWebAPI
。我在我的Android项目中实现的后台服务中调用了这个方法,如下所示:我的场景如下:
[return: GeneratedEnum]
public override StartCommandResult OnStartCommand(Intent intent, [GeneratedEnum] StartCommandFlags flags, int startId)
{
Toast.MakeText(this, "BackgroundService started..", ToastLength.Long).Show();
Task.Factory.StartNew(() => DoBackgroundJob(), TaskCreationOptions.LongRunning);
base.OnStartCommand(intent, flags, startId);
return StartCommandResult.Sticky;
}
public async void DoBackgroundJob()
{
// An instance of he class in my PCL to invoke the method PostToWebAPI
WebServiceAPI webApi = new WebServiceAPI();
await webApi.PostToWebAPI("Nissan", "2003");
}
我的方案如下:
PostToWebAPI
。 Service
,更具体地说是在启动设备启动时触发的Android项目中。如上所示,Service
会调用Task.Factory.StartNew(() => DoBackgroundJob(), TaskCreationOptions.LongRunning);
。 我的问题是如何在Service
运行时避免阻止用户界面?即使手动启动应用,也应该发布运行的应用和Service
的数据。请帮忙。