我在Xamarin.Forms应用程序的Application.Current.Properties中保存了一些首选项,并具有需要这些首选项的BroadcastReceiver。问题是Xamarin.Forms没有在BroadcastReceiver中初始化,因此我需要一种方法来访问本机Xamain.Android中的那些变量。有可能吗?
答案 0 :(得分:1)
我需要一种在本地Xamain.Android中访问这些变量的方法
您可以使用 DependencyService ,此功能使Xamarin.Forms应用程序可以执行本机应用程序可以执行的任何操作。
以下是使用Android Toast以共享代码显示消息的示例:
1。使用共享代码创建接口:
public interface IToast
{
void LongAlert(string message);//the parameter could pass to the native platform
void ShortAlert(string message);
}
2.Android实现:
[assembly: Dependency(typeof(ToastAndroid))]
namespace Demo.Droid
{
class ToastAndroid : IToast
{
public void LongAlert(string message)
{
Toast.MakeText(Android.App.Application.Context, message, ToastLength.Long).Show();
}
public void ShortAlert(string message)
{
Toast.MakeText(Android.App.Application.Context, message, ToastLength.Short).Show();
}
}
}
3。用共享代码调用:
DependencyService.Get<IToast>().ShortAlert("short toast);
DependencyService.Get<IToast>().LongAlert("long toast);
答案 1 :(得分:0)
我自己找到了解决方案。 我使用Xamarin.Forms源(找到here)编写了一个函数,该函数从与在Forms应用程序中写入的文件相同的文件中读取值。就像魅力一样。