在Xamarin.android

时间:2017-11-15 10:05:21

标签: c# android xamarin.android

我已经实施了后台服务。当我启动设备时,启动后台服务并显示Toast消息。我希望在服务运行时每5秒钟显示一个Toast消息。以下代码似乎没有完成这项工作:

[Service]
    public class BroadcastService : Service
    {
        IBinder mBinder;

        [return: GeneratedEnum]
        public override StartCommandResult OnStartCommand(Intent intent, [GeneratedEnum] StartCommandFlags flags, int startId)
        {

            Toast.MakeText(this, "BroadcastService Started...", ToastLength.Long).Show();

            DoWork();

            base.OnStartCommand(intent, flags, startId);
            return StartCommandResult.Sticky;


        }

public void DoWork()
{
    while (true)
    {
        Toast.MakeText(this, "BroadcastService is running at each 5 seconds...", ToastLength.Long).Show();
        Thread.Sleep(5000);
    }
}

有人可以告诉我上面的错误并帮助在Xamarin.android中实现这个目的吗?

1 个答案:

答案 0 :(得分:0)

  

我希望在服务运行时每5秒显示一次Toast消息。以下代码似乎没有完成工作

OnStartCommand完成执行后,DoWork将不再执行。

根据您的要求,您需要使用JobSchedulerJobInfo来创建定期任务。有关如何使用JobScheduler,您可以参考official demo of JobScheduler