我想知道我的应用终止时是否可以开始一项活动。在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秒就会启动一次新活动-服务也运行良好。
我的问题是-是否可以在后台运行此服务?如果是-我在做什么错了?
谢谢。