Xamarin.android 我是否需要在每次活动中启动AppCenter';是继续创建还是只创建第一个?

Xamarin.android 我是否需要在每次活动中启动AppCenter';是继续创建还是只创建第一个?,xamarin.android,visual-studio-app-center,Xamarin.android,Visual Studio App Center,根据AppCenter在向Xamarin Android应用程序添加崩溃报告和分析时的说明: 在应用程序的MainActivity.cs中,添加以下using语句 在同一个文件中,在OnCreate()方法中添加以下内容 但是,我有一个在MainActivity之前运行的splash活动,它很容易崩溃—如果splash活动在MainActivity获得启动和调用AppCenter.start的更改之前崩溃,则不会报告崩溃 因此,我还将AppCenter.Start添加到SplashActivit

根据AppCenter在向Xamarin Android应用程序添加崩溃报告和分析时的说明:

在应用程序的MainActivity.cs中,添加以下using语句

在同一个文件中,在OnCreate()方法中添加以下内容

但是,我有一个在MainActivity之前运行的splash活动,它很容易崩溃—如果splash活动在MainActivity获得启动和调用AppCenter.start的更改之前崩溃,则不会报告崩溃


因此,我还将
AppCenter.Start
添加到SplashActivity的开头。这是否意味着如果启动多个实例,我应该从MainActivity中删除
AppCenter.Start
?或者AppCenter实例是否独立于每个活动,我需要向项目中的每个活动添加
AppCenter.Start
(例如,包括我的设置页面活动)?

添加一个新类并从应用程序类继承它,如下所示:

 #if DEBUG
  [Application(Debuggable=true)]
  #else
  [Application(Debuggable = false)]
  #endif
 public class MainApp : Application
 {
    public MainApp(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
    {
    }

    public override void OnCreate()
     {
        base.OnCreate();
     }
 }
重写
OnCreate
方法,现在每次执行activities
OnCreate
方法时都会执行此方法

因此,您只需在此处添加崩溃分析代码,如下所示:

  public override void OnCreate()
 {
  base.OnCreate();
 AppCenter.Start("xxxx-xxxx-xxxx-xxxx-xxxx",
                typeof(Analytics), typeof(Crashes));
  }

您需要选择要使用的模块,这意味着默认情况下不会启动任何模块,并且在启动SDK时必须显式调用每个模块。在应用程序的主活动类“onCreate callback”中插入以下行以使用应用程序中心分析和应用程序中心崩溃:AppCenter.start(getApplication(),“{your app Secret}”,Analytics.class,crasks.class);为什么不创建一个应用程序类,然后在那里注册所有内容呢?@G.hakim这听起来是个好主意。我以前从未使用过应用程序类-将尝试it@G.hakim你能解释一下怎么做吗?我已经添加了代码,你可以检查它,但是如果我们的应用程序没有运行,而另一个应用程序调用了我们应用程序的内容提供商,我们应用程序类的
onCreate
将不会被调用,这是唯一的例外
 #if DEBUG
  [Application(Debuggable=true)]
  #else
  [Application(Debuggable = false)]
  #endif
 public class MainApp : Application
 {
    public MainApp(IntPtr javaReference, JniHandleOwnership transfer) : base(javaReference, transfer)
    {
    }

    public override void OnCreate()
     {
        base.OnCreate();
     }
 }
  public override void OnCreate()
 {
  base.OnCreate();
 AppCenter.Start("xxxx-xxxx-xxxx-xxxx-xxxx",
                typeof(Analytics), typeof(Crashes));
  }