如何在程序启动时实现一个简单的“启动屏幕”?我正在复制一个sqlite数据库,它可能是一个有点长的过程,不是ui“友好”。
我宁愿不使用“Java代码”。
蒂亚
最佳答案
我最近用以下方法解决了这个问题。
在主活动中,我通过意图传递了一个参数,以设置启动屏幕保持可见的毫秒数。
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
Intent i=new Intent();
i.SetClass(this, typeof (Splash));
i.PutExtra("Milliseconds", 3000);
StartActivity(i);
}
然后,在我命名为“splash”的第二个活动中,我检索了该值并设置了第二个线程,以便在时间过去后结束该活动。
[Activity(Label = "Daraize Tech")]
public class Splash : Activity
{
private int _milliseconds;
private DateTime _dt;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
_milliseconds = Intent.GetIntExtra("Milliseconds", 1000);
SetContentView(Resource.Layout.Splash);
_dt=DateTime.Now.AddMilliseconds(_milliseconds);
}
public override void OnAttachedToWindow()
{
base.OnAttachedToWindow();
new Thread(new ThreadStart(() =>
{
while (DateTime.Now < _dt)
Thread.Sleep(10);
RunOnUiThread( Finish );
}
)).Start();
}
}
关于c# - MonoDroid开机画面,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6560675/