Как сделать так, чтобы Android Project моего приложения Xamarin начинался с MainApplication.cs вместо MainActivity.cs - PullRequest
0 голосов
/ 28 февраля 2020

Я работаю над приложением Xamarin.Forms, в котором есть проекты Xamarin.Android и Xamarin.ios. Мне нужно использовать CurrentActivityPlugin для Android.

. Мне нужно выполнить некоторые функции при запуске приложения Android, поэтому я хочу, чтобы мое приложение начиналось с MainApplicaiton вместо MainActivity как показано в документации здесь .

И идеи о том, как я могу реорганизовать проект Android, чтобы начать с MainApplication вместо MainActivity?

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

В вашем AssemblyInfo.cs удалите это:

#if DEBUG
[assembly: Application(Debuggable=true)]
#else
[assembly: Application(Debuggable = false)]
#endif

Затем добавьте его в основное приложение следующим образом:

#if DEBUG
[Application(Debuggable = true)]
#else
[Application(Debuggable = false)]
#endif
   public class MainApplication : global::Android.App.Application
   {      
      public MainApplication(IntPtr handle, JniHandleOwnership transer): base(handle, 
        transer)
      {
      }

      public override void OnCreate()
      {
        base.OnCreate();
        CrossCurrentActivity.Current.Init(this);

        //A great place to initialize Xamarin.Insights and Dependency Services! Add 
         some function that you want.
      }

   }
1 голос
/ 28 февраля 2020

И идеи о том, как я могу провести рефакторинг проекта Android, чтобы начать с MainApplication вместо MainActivity?

По предоставленной вами ссылке, если вы хотите Android проект начинается с MainApplication, вы просто создаете новое имя класса MainApplication.cs в Android проекте, если вы хотите выполнять некоторые функции при запуске Android проекта, вы просто добавляете необходимый код в метод OnCreate ().

#if DEBUG
[Application(Debuggable = true)]
#else
[Application(Debuggable = false)]
#endif
public class MainApplication : global::Android.App.Application
{      
    public MainApplication(IntPtr handle, JniHandleOwnership transer): base(handle, transer)
    {
    }
    public override void OnCreate()
    {
        base.OnCreate();
        CrossCurrentActivity.Current.Init(this);

        //A great place to initialize Xamarin.Insights and Dependency Services! Add some function that you want.
    }

}

Вы можете видеть, когда вы запускаете проект, сначала введите MainApplication, затем Mainactivity, я думаю, что статья, которую вы предоставили, решила ваш вопрос.

...