xamarin android:在第一个intent之前执行代码

问题描述:

在Xamarin.Android应用程序中,我需要显示来自http远程服务器的启动屏幕图像。因此,我需要在显示MainLauncher活动之前执行一些代码(WebClient ...)(我的MainLauncher活动基本上是一个ImageView和一个ProgressBar)。xamarin android:在第一个intent之前执行代码

如果我在MainLauncher活动的OnCreate中添加我的WebClient代码,则在下载过程中会显示一个黑屏。 所以我想在显示mainlauncher之前执行我的WebClient代码。

或任何一种伎俩都行!

希望很清楚...

您可能需要一个更多的活动。立即启动启动画面,并在那里进行加载;当你的加载完成后,重定向到你的主要活动。

您可以创建一个扩展Android.App.Application的类,并将您的代码添加到其OnCreate方法中。它将在应用程序启动时的MainLauncher活动之前调用。正如here指出的那样,只有在第一次加载应用程序时才会调用此代码。

例如,添加Application.cs(你可以使用Xamarin Studio的为Android活动的新文件模板)到项目的顶层与内容如下:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text;  
using Android.App; 
using Android.Content; 
using Android.OS; 
using Android.Runtime; 
using Android.Views; 
using Android.Widget; 
using MyApp.Core; 

namespace MyApp.Droid 
{ 
    public class Application : Android.App.Application 
    { 
     public Application(IntPtr javaReference, JniHandleOwnership transfer) 
     : base(javaReference, transfer) 
     { 
     } 

     public override void OnCreate() 
     { 
      base.OnCreate(); 

      // PUT SETUP CODE HERE 
     } 
    } 
}