我是否需要在每个Activity的OnCreate或仅第一个中启动AppCenter?

时间:2019-02-28 00:40:09

标签: xamarin.android visual-studio-app-center

在向Xamarin Android应用添加崩溃报告和分析时,按照AppCenter的说明进行操作:

  

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

 using Microsoft.AppCenter;
 using Microsoft.AppCenter.Analytics;
 using Microsoft.AppCenter.Crashes;
  

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

 AppCenter.Start("xxxx-xxxx-xxxx-xxxx-xxxx",
                    typeof(Analytics), typeof(Crashes));

但是,我有一个Splash活动在MainActivity之前运行,该活动很容易崩溃-并且如果Splash活动在MainActivity启用更改并调用AppCenter.Start之前崩溃,则不会报告崩溃。

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

1 个答案:

答案 0 :(得分:1)

添加一个新类,并从Application类继承它,如下所示:

 #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方法,现在每次执行活动OnCreate方法时都会执行此方法。

因此您可以在此处简单地添加崩溃分析代码,例如:

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