在Android应用程序中使用启动画面的最佳方法?

Abh*_*kar 7 android screen splash-screen

我的应用程序需要一个启动画面.试图为我的启动画面创建一个具有图像的活动; 并尝试使用for循环和Timer类来引入时间延迟.但它不会那样工作.我做错了吗?如果有,那么正确的方法是什么?

Jel*_*lle 16

上述解决方案很好,但是如果用户在启动延迟结束之前按下后退键(并关闭应用程序),该怎么办呢?该应用程序可能仍会打开下一个活动,这不是真正用户友好的.

这就是我使用自定义处理程序,并删除onDestroy()中任何待处理消息的原因.

public class SplashActivity extends Activity
{
    private final static int MSG_CONTINUE = 1234;
    private final static long DELAY = 2000;

    @Override
    protected void onCreate(Bundle args)
    {
        super.onCreate(args);
        setContentView(R.layout.activity_splash);

        mHandler.sendEmptyMessageDelayed(MSG_CONTINUE, DELAY);
    }

    @Override
    protected void onDestroy()
    {
        mHandler.removeMessages( MSG_CONTINUE );    
        super.onDestroy();
    }

    private void _continue()
    {
        startActivity(new Intent(this, SomeOtherActivity.class));
        finish();
    }

    private final Handler mHandler = new Handler()
    {
        public void handleMessage(android.os.Message msg)
        {
            switch(msg.what){
                case MSG_CONTINUE:
                    _continue();
                    break;
            }
        }
    };
}
Run Code Online (Sandbox Code Playgroud)