在安卓设备上,启动画面出现之前会出现黑屏。
在安卓设备上,启动画面出现之前会出现黑屏。
我们知道当应用程序执行一些长时间的过程,比如从互联网下载一些信息,它可以在加载应用程序之前显示一个启动画面,并且当应用程序完全加载后,它将显示主页面。
在启动画面活动中,我们必须在线程中加载长时间的过程,以避免在加载应用程序之前显示黑屏。
我已经做了所有这些,但是在显示应用程序之前仍然出现了黑屏。
这是启动画面活动的onCreate方法:
protected override void OnCreate (Bundle bundle) { try { base.OnCreate (bundle); //_dt = DateTime.Now.AddSeconds (_splashTime); SetContentView (Resource.Layout.Splash ); FirstLoadPB= FindViewById(Resource .Id.FirstLoadPB ); FirstLoadingInfo= FindViewById (Resource .Id.FirstLoadInfo ); LoadApplication (); } catch (System.Exception ex) { Common.HandleException (ex); } }
这是`LoadApplication`方法的代码:
public void LoadApplication() { new System.Threading.Thread (new ThreadStart (() => { //一些加载应用程序的代码-从网上下载和访问存储(因为代码很多-大约100行-我已经清理了它们)。 } ) ).Start (); }
我不明白为什么会出现黑屏,以及如何避免这种情况。
我的应用程序类的oncreate方法中有一些访问存储的代码。也许问题的根源就是从那里开始的。因此,我分享了它的代码:
public override void OnCreate () { try { base.OnCreate (); _typeOfShow = new MapViewType (); ListingTypes = new Dictionary(); OfflineMode =false; PropertyShowWasShown = false; MeasutingUnitsChanged =false; if(RplXmlSettings .Instance .getVal (AppConstants .XmlSettingShowOnCurrentLocationKey )== "True") typeOfShow .ShowOnCurrentLocation =true ; else typeOfShow .ShowOnCurrentLocation =false; //StorageClass .ctx = ApplicationContext ; FillDashboardOnResume =false; //initlize image loader ImageLoader = Com.Nostra13.Universalimageloader.Core.ImageLoader.Instance; Options = new DisplayImageOptions.Builder () .ShowImageForEmptyUri (Resource.Drawable.ic_tab_map) .CacheOnDisc () .CacheInMemory () .ImageScaleType (ImageScaleType.InSampleInt) .BitmapConfig (Bitmap.Config.Rgb565) .Displayer (new FadeInBitmapDisplayer (300)) .Build (); ImageLoaderConfiguration config; ImageLoaderConfiguration .Builder builder =new ImageLoaderConfiguration .Builder (ApplicationContext).ThreadPoolSize (3); if(RplXmlSettings .Instance .getVal (AppConstants .XmlSettingMemoryCacheKey )== "True") builder .ThreadPriority (4).MemoryCacheSize (1500000) ;// 1.5 Mb builder . DenyCacheImageMultipleSizesInMemory (). DiscCacheFileNameGenerator (new Md5FileNameGenerator ()). MemoryCache (new WeakMemoryCache()). DiscCacheSize (15000000); config = builder .Build (); ImageLoader.Init (config); } catch (Exception ex) { Common .HandleException (ex); } }
好的,长话短说,现在问题是-真正的黑屏的根本原因是什么。这是来自启动画面活动还是应用程序类。我们如何解决它并避免显示这个?