Xamarin 用于设置报警的MvvmCross插件
我想编写一个跨移动平台的应用程序,通过指定日期和时间等所需参数来设置警报。我只想设置一次,而不是重复。 我在mvvmcross或Xamarin中找不到任何现成的插件Xamarin 用于设置报警的MvvmCross插件,xamarin,mvvmcross,Xamarin,Mvvmcross,我想编写一个跨移动平台的应用程序,通过指定日期和时间等所需参数来设置警报。我只想设置一次,而不是重复。 我在mvvmcross或Xamarin中找不到任何现成的插件 请提供帮助因为MVVMCross中没有现有插件,您可能需要编写自己的插件。您可以在此处找到文档: 由于您希望指定几个参数,因此希望看到以下部分: 总的来说,您可以这样做: 通用界面 public interface IAlarm { void SetupAlarm(); } public class PluginLo
请提供帮助因为MVVMCross中没有现有插件,您可能需要编写自己的插件。您可以在此处找到文档: 由于您希望指定几个参数,因此希望看到以下部分: 总的来说,您可以这样做: 通用界面
public interface IAlarm
{
void SetupAlarm();
}
public class PluginLoader
: IMvxPluginLoader
{
public static readonly PluginLoader Instance = new PluginLoader();
public void EnsureLoaded()
{
var manager = Mvx.Resolve<IMvxPluginManager>();
manager.EnsurePlatformAdaptionLoaded<PluginLoader>();
}
}
然后,对于iOS和Windows Phone,您将遵循相同的Droid步骤。我希望这有帮助
public class DroidAlarmConfiguration
: IMvxPluginConfiguration
{
public AlarmLength { get; set;}
}
public class DroidAlarm : IAlarm
{
public TimeSpan AlarmLength { get; set; }
public void SetupAlarm()
{
//ALARM IMPLEMENTATION HERE. NOTE THIS IS SOME JAVA SYNTAX!!!!
var globals = Mvx.Resolve<Cirrious.CrossCore.Droid.IMvxAndroidGlobals>();
var alarm = globals.ApplicationContext
.GetSystemService(Context.ALARM_SERVICE)
as AlarmManager;
Intent intent = new Intent(context, AlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
alarm.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
alarmLength, alarmIntent);
}
}
public class Plugin
: IMvxPlugin
{
private _alarmLength = **Your Value Here**;
public void Configure(IMvxPluginConfiguration configuration)
{
if (configuration == null)
return;
var droidConfiguration = (DroidAlarmConfiguration)configuration;
_alarmLength = droidConfiguration.AlarmLength;
}
public void Load()
{
var instance = new DroidAlarm();
instance.AlarmLength = _AlarmLength;
Mvx.RegisterSingleton<IAlarm>(instance);
}
}
protected override IMvxPluginConfiguration GetPluginConfiguration(Type plugin)
{
if (plugin == typeof(Yours.Alarm.Droid.Plugin))
{
return new Yours.Alarm.Droid.DroidAlarmConfiguration()
{
AlarmLength = **YOUR VALUE HERE**
};
}
return null;
}