应用终止时,在服务中启动活动

时间:2019-03-09 18:00:39

标签: android xamarin service xamarin.android

我想知道我的应用终止时是否可以开始一项活动。在OnCreate事件中,我正在启动服务

StartService(new Intent(this, typeof(SampleService)));

 [Service(Exported = true)]
public class SampleService : Service
{
    CancellationTokenSource _cts;
    public override IBinder OnBind(Intent intent)
    {
        return null;
    }

    public override StartCommandResult OnStartCommand(Android.Content.Intent intent, StartCommandFlags flags, int startId)
    {
        myService = this;
        var t = new Java.Lang.Thread(() => {
                _cts = new CancellationTokenSource();

                Task.Run(async () =>
                {
                    try
                    {
                        await ExecutePost(_cts.Token);
                    }
                    catch (Exception ex)
                    {

                    }                        

                }, _cts.Token);
            }
        );
        t.Start();
        return StartCommandResult.Sticky;
    }

方法ExecutePost正在启动一个新活动:

public async Task ExecutePost(CancellationToken token)
    {
        await Task.Run(async () =>
        {
            while (true)
            {
                try
                {
                    await Task.Delay(3000);
                    Intent temp = new Intent();
                    temp.SetClass(myService, typeof(MainActivity));
                    temp.SetAction(Intent.ActionView);
                    temp.SetFlags(ActivityFlags.ReorderToFront);
                    temp.SetFlags(ActivityFlags.NewTask);
                    myService.StartActivity(temp);

                }
                catch (Exception ex)
                {

                }
            }

        }, token);
    }

当应用程序运行时,行为良好-当应用程序在后台运行时,每隔3秒就会启动一次新活动-服务也运行良好。

我的问题是-是否可以在后台运行此服务?如果是-我在做什么错了?

谢谢。

0 个答案:

没有答案