Xamarin主要方法或等效方法

时间:2019-01-07 11:50:48

标签: c# xamarin xamarin.forms

我是Xamarin的新手,正在寻找类似main()方法的入口点。另外,我有一个数据存储(即模型)类,该类不断从Web套接字接收数据,并且可以在整个应用程序(即从多个ViewModel)进行访问。我可以在哪里放置此类重要的核心课程?您可以将它们放在静态类中吗?

还:是否有main-loop之类的东西负责处理任务和事件?

对于Xamarin应用程序中所有“入口点”的通用/入门概述,我将不胜感激。

4 个答案:

答案 0 :(得分:2)

例如,如果您在Visual Studio 2017中创建跨平台移动应用,则您将已经获得一个脚手架。数据层位于“服务”文件夹中。

我将“ App.xaml”文件作为您的入口点。

   public partial class App : Application
{
    //TODO: Replace with *.azurewebsites.net url after deploying backend to Azure
    public static string AzureBackendUrl = "http://localhost:5000";
    public static bool UseMockDataStore = false;
    public static bool UseEntityFramework = true;

    public App()
    {
        InitializeComponent();

        if (UseMockDataStore)
            DependencyService.Register<MockDataStore>();
        else if (UseEntityFramework)
            DependencyService.Register<SqLiteDataStore>();
        else
            DependencyService.Register<AzureDataStore>();

        MainPage = new MainPage();
    }

    protected override void OnStart()
    {
        // Handle when your app starts
    }

    protected override void OnSleep()
    {
        // Handle when your app sleeps
    }

    protected override void OnResume()
    {
        // Handle when your app resumes
    }
}

答案 1 :(得分:2)

每个平台都有自己的main()类方法

  • Android MainActivity.OnCreate()
  • iOS AppDelegate.FinishedLaunching(UIApplication app, NSDictionary options)
  • UWP App.OnLaunched(LaunchActivatedEventArgs e)
在Xamarin.Forms应用程序上的

所有这些平台都实例化App类并设置MainPage

如果要对BL进行操作,则应使用App.OnStart()方法。

答案 2 :(得分:0)

假设您正在谈论Xamarin.Forms

  

我是Xamarin的新手,我正在寻找像main()方法这样的切入点。

  • 现在Xamarin.Forms的基本工作原理是,各自的本机类(即MainActivity(Android),AppDelegate(iOS)和App(UWP)称为{{ App.Xaml.Net Standard项目中的1}}类。 因此,可以将其视为控制台应用程序的PCL方法的入口点。
  

我有一个数据存储(即模型)类,该类不断从Web套接字接收数据,并且可以在整个应用程序(即从多个ViewModel)中访问。

  • 为此,最好的处理方法是SQLite Database,我建议您也检查this以便更好地了解其工作原理
  

我可以在哪里放置此类重要的核心课程?您可以将它们放在静态类中吗?

  • 您可以将它们设置为静态,但我个人建议您仅将冗余代码置于静态。是的,可以随意创建静态助手类。
  

还:是否有类似主循环的东西负责处理任务和事件?

  • 我不清楚您的问题的这一部分还需要详细说明

如有查询,请随时还原。

答案 3 :(得分:0)

在Android中,您可以覆盖默认的 MainActivity ,如下所示:

enter image description here