首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Splash屏幕显示得太快,然后进入下一个Java类

Splash屏幕显示得太快,然后进入下一个Java类
EN

Stack Overflow用户
提问于 2017-07-04 08:42:14
回答 4查看 1.4K关注 0票数 1

启动屏幕应该持续3秒,但当应用程序在Genymotion仿真程序安卓工作室仿真程序上运行时,它几乎完全跳过了它,这两个模拟器都与其他应用程序运行得很好。我不明白?

SplashScreen.java

代码语言:javascript
复制
package com.transcendencetech.juliospizzaprototype;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.view.Window;

/**
 * Created by Stormy Forrester on 20/03/2016.
 */
public class SplashScreen extends AppCompatActivity {

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.splash_screen);

    int secondsDelayed = 4;
    new Handler().postDelayed(new Runnable() {
      public void run() {
        startActivity(new Intent(SplashScreen.this,
          SignInActivity.class));
        finish();
      }
    }, secondsDelayed * 3);
  }
}

**splash_screen,xml **

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-07-04 08:45:36

你的屏幕代码应该是这样的

代码语言:javascript
复制
 new Handler().postDelayed(new Runnable() {

        /*
         * Showing splash screen with a timer. This will be useful when you
         * want to show case your app logo / company
         */

        @Override
        public void run() {
            Intent mainIntent = new Intent(SplashScreenClass.this, Homescreen.class);
            startActivity(mainIntent);
            finish();
            // close this activity
        }
    }, 3000);

,因为处理程序中使用的延迟以毫秒为单位。

票数 3
EN

Stack Overflow用户

发布于 2017-07-04 08:47:14

你应该把你的秒(如4)乘以1000。

因为你必须在毫秒内给它。

尝试将代码更改为

代码语言:javascript
复制
 @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.splash_screen);

    int secondsDelayed = 4;
    new Handler().postDelayed(new Runnable() {
      public void run() {
        startActivity(new Intent(SplashScreen.this,
          SignInActivity.class));
        finish();
      }
    }, secondsDelayed * 1000);
  }
}
票数 2
EN

Stack Overflow用户

发布于 2017-07-04 08:45:22

更改变量形式

代码语言:javascript
复制
 int secondsDelayed = 4;

代码语言:javascript
复制
 int secondsDelayed = 4000;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44901115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档