现在我使用这个:
var activity = (Activity)Forms.Context;
但是我应该用什么代替?
根据此处接受的答案,我应该使用Android.App.Application.Context
:Xamarin.Forms: Forms.Context is obsolete
但是我无法将其投放到Activity
中。
这里有什么解决方法吗?
UPD :我需要它来从库中关闭应用程序。
答案 0 :(得分:1)
解决方案一: 使用 CurrentActivityPlugin 库。正确设置后:
var activity = CrossCurrentActivity.Current.Activity;
解决方案二: 在MainActivity类中定义一个静态实例:
public class MainActivity : FormsAppCompatActivity
{
public static FormsAppCompatActivity Instance { get; private set; }
protected override void OnCreate(Bundle bundle)
{
Instance = this;
//other codes
}
}
并像这样使用它:
var activity = MainActivity.Instance;
注意:显然,当应用程序的入口点为MainActivity时,应该使用解决方案二,而不是诸如后台服务,广播接收器等其他入口,否则MainActivity.Instance可能为null。对于这些情况,我们可以使用解决方案一,也可以在这些入口点中定义一个静态实例。