Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Xamarin.Android中重复执行后台任务_C#_Android_Xamarin_Xamarin.android - Fatal编程技术网

C# 在Xamarin.Android中重复执行后台任务

C# 在Xamarin.Android中重复执行后台任务,c#,android,xamarin,xamarin.android,C#,Android,Xamarin,Xamarin.android,我想为Android 6编写一个静默/振动调度程序 因此,我需要一个后台任务,根据UI应用程序中定义的时间表设置声音/振动/静音,该时间表已完成并准备就绪 如何将这样的服务添加到我的应用程序中以在后台运行?(定期服务,每分钟检查/设置铃声状态) 我可以使用AudioManager读取/设置值,但我不知道如何安排任务。您需要为这些添加广播接收器。将Android.Content.Intent设置为ActionTimeTick,这样无论何时更改时间,Android操作系统都会广播消息(Android

我想为Android 6编写一个静默/振动调度程序

因此,我需要一个后台任务,根据UI应用程序中定义的时间表设置声音/振动/静音,该时间表已完成并准备就绪

如何将这样的服务添加到我的应用程序中以在后台运行?(定期服务,每分钟检查/设置铃声状态)


我可以使用
AudioManager
读取/设置值,但我不知道如何安排任务。

您需要为这些添加广播接收器。将Android.Content.Intent设置为ActionTimeTick,这样无论何时更改时间,Android操作系统都会广播消息(Android意图)

[BroadcastReceiver(Enabled = true)]
    [IntentFilter(new[] { Android.Content.Intent.ActionTimeTick })]
    public class GridStartBroadcastReceiver : BroadcastReceiver
    {
        public static readonly string GRID_STARTED = "GRID_STARTED";
        public override void OnReceive(Context context, Intent intent)
        {
           if (intent.Action == GRID_STARTED)
            {
         //your logic
            }
        }
    }
您需要先注册广播接收器。 将这些代码添加到oncreate方法以注册广播接收器

//calling
                    Intent BroadcastIntent = new Intent(this, typeof(MainActivity.GridStartBroadcastReceiver));
                    BroadcastIntent.SetAction(MainActivity.GridStartBroadcastReceiver.GRID_STARTED);
                    BroadcastIntent.AddCategory(Intent.CategoryDefault);
                    SendBroadcast(BroadcastIntent);
IntentFilter过滤器=新的IntentFilter(gridstartbroadcasreceiver.GRID_已启动);
filter.AddCategory(Intent.CategoryDefault);
_接收器=新的GridStartBroadcastReceiver();
寄存器接收器(接收器、滤波器)

接下来,将广播发送到广播接收器

//calling
                    Intent BroadcastIntent = new Intent(this, typeof(MainActivity.GridStartBroadcastReceiver));
                    BroadcastIntent.SetAction(MainActivity.GridStartBroadcastReceiver.GRID_STARTED);
                    BroadcastIntent.AddCategory(Intent.CategoryDefault);
                    SendBroadcast(BroadcastIntent);

您需要为这些设备添加广播接收器。将Android.Content.Intent设置为ActionTimeTick,这样无论何时更改时间,Android操作系统都会广播消息(Android意图)

[BroadcastReceiver(Enabled = true)]
    [IntentFilter(new[] { Android.Content.Intent.ActionTimeTick })]
    public class GridStartBroadcastReceiver : BroadcastReceiver
    {
        public static readonly string GRID_STARTED = "GRID_STARTED";
        public override void OnReceive(Context context, Intent intent)
        {
           if (intent.Action == GRID_STARTED)
            {
         //your logic
            }
        }
    }
您需要先注册广播接收器。 将这些代码添加到oncreate方法以注册广播接收器

//calling
                    Intent BroadcastIntent = new Intent(this, typeof(MainActivity.GridStartBroadcastReceiver));
                    BroadcastIntent.SetAction(MainActivity.GridStartBroadcastReceiver.GRID_STARTED);
                    BroadcastIntent.AddCategory(Intent.CategoryDefault);
                    SendBroadcast(BroadcastIntent);
IntentFilter过滤器=新的IntentFilter(gridstartbroadcasreceiver.GRID_已启动);
filter.AddCategory(Intent.CategoryDefault);
_接收器=新的GridStartBroadcastReceiver();
寄存器接收器(接收器、滤波器)

接下来,将广播发送到广播接收器

//calling
                    Intent BroadcastIntent = new Intent(this, typeof(MainActivity.GridStartBroadcastReceiver));
                    BroadcastIntent.SetAction(MainActivity.GridStartBroadcastReceiver.GRID_STARTED);
                    BroadcastIntent.AddCategory(Intent.CategoryDefault);
                    SendBroadcast(BroadcastIntent);

您应该使用android内置服务AlarmManager。阅读谷歌文档,了解如何正确使用它。你应该使用安卓内置服务AlarmManager。阅读谷歌文档,学习如何正确使用它