如何将Integer#/
项目中定义的方法调用到PCL
项目?
我在我的PCL中定义了一个方法Android
,我希望这个方法能够在我的android项目中定义的服务中连续运行,如下所示:
DoWork()
吐司正在出现。
但是,public class BroadcastService : Service
{
IBinder mBinder;
[return: GeneratedEnum]
public override StartCommandResult OnStartCommand(Intent intent, [GeneratedEnum] StartCommandFlags flags, int startId)
{
Toast.MakeText(this, "BroadcastService is running ", ToastLength.Long).Show();
Task.Run(() =>
{
var counter = new Counter();
counter.DoWork().Wait();
});
base.OnStartCommand(intent, flags, startId);
return StartCommandResult.Sticky;
}
未运行。有人可以启发有什么问题吗?
DoWork()
的完整方法签名:
DoWork()
答案 0 :(得分:1)
我认为您可以使用MessagingCenter。你可以试试这样的东西
公共类BroadcastService:服务 { IBinder mBinder;
[return: GeneratedEnum]
public override StartCommandResult OnStartCommand(Intent intent, [GeneratedEnum] StartCommandFlags flags, int startId)
{
Toast.MakeText(this, "BroadcastService is running ", ToastLength.Long).Show();
Xamarin.Forms.MessagingCenter.Send<App>((App)Xamarin.Forms.Application.Current, "dowork");
base.OnStartCommand(intent, flags, startId);
return StartCommandResult.Sticky;
}
并在您的PCL项目中
protected override void OnStart()
{
MessagingCenter.Subscribe<App>(this, "dowork", (sender) =>
{
// Do something here
});
// Handle when your app starts
}