Нужно ли запускать AppCenter в OnCreate каждого занятия или только в первом? - PullRequest
0 голосов
/ 28 февраля 2019

В соответствии с инструкциями AppCenter при добавлении отчетов о сбоях и аналитики в приложение Xamarin для Android:

Внутри 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));

Однако у меня есть всплывающее действие, которое запускается перед MainActivity и склонно к сбоям -и о сбоях не будет сообщено, если всплеск активности завершится до того, как MainActivity запустит изменение и вызовет AppCenter.Start.

Так что я также добавил AppCenter.Start к началу SplashActivity.Означает ли это, что я должен удалить AppCenter.Start из MainActivity, если я запускаю несколько экземпляров?Или экземпляры AppCenter являются отдельными для каждого действия, и мне нужно добавить AppCenter.Start к каждому действию в проекте (например, включая мои действия на странице настроек)?

1 Ответ

0 голосов
/ 01 марта 2019

Добавьте новый класс и унаследуйте его от класса 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));
  }
...