首页 > 解决方案 > 有没有办法创建一个可以在所有活动中访问的全局变量

问题描述

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

我想要做的是在我的应用程序中有一个积分系统,所以积分在整个应用程序中是相同的,并且可以从任何活动将积分添加到变量中。

标签: visual-studioxamarin

解决方案


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

 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;

推荐阅读