如何在程序启动时实现一个简单的“启动屏幕”?我正在复制一个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/

10-09 05:13