有没有一种方法可以创建可以在所有活动中访问的全局变量

时间:2019-04-17 13:20:11

标签: visual-studio xamarin

我正在尝试创建一个可以供所有活动访问的全局变量,并且在一个活动中对其进行的任何更改都将对其他活动的变量进行更改。

我想做的是在我的应用程序中拥有一个积分系统,因此积分在整个应用程序中都是相同的,并且积分可以通过任何活动添加到变量中。

1 个答案:

答案 0 :(得分:1)

将应用程序类添加到您的项目中,如下所示:

 public partial class MainApplication : Application, Application.IActivityLifecycleCallbacks
{
    public static int GlobalPoints { get; set; }
    public MainApplication(IntPtr handle, JniHandleOwnership transer)
     : base(handle, transer)
    {

    }
    public override void OnTerminate()
    {
        base.OnTerminate();
       // UnregisterActivityLifecycleCallbacks(this);
    }
    public override void OnCreate()
    {
        base.OnCreate();
       // RegisterActivityLifecycleCallbacks(this);
    }

    public void OnActivityCreated(Android.App.Activity activity, Bundle savedInstanceState)
    {
       // Xamarin.Forms.Forms.Init(activity, savedInstanceState);
       // CrossCurrentActivity.Current.Activity = activity;
        //ActivityContext = activity;
    }

    public void OnActivityDestroyed(Android.App.Activity activity)
    {
        //   throw new NotImplementedException();
    }

    public void OnActivityPaused(Android.App.Activity activity)
    {
        //throw new NotImplementedException();
    }

    public void OnActivityResumed(Android.App.Activity activity)
    {
        //CrossCurrentActivity.Current.Activity = activity;
       // ActivityContext = activity;
    }

    public void OnActivitySaveInstanceState(Android.App.Activity activity, Bundle outState)
    {
        /// throw new NotImplementedException();
    }

    public void OnActivityStarted(Android.App.Activity activity)
    {
        //CrossCurrentActivity.Current.Activity = activity;
       // ActivityContext = activity;
    }

    public void OnActivityStopped(Android.App.Activity activity)
    {
        //throw new NotImplementedException();
    }
}

现在,您可以在应用中的任何位置访问此变量,例如:

MainApplication.GlobalPoints= 1000;