Java 启动屏幕将不显示

Java 启动屏幕将不显示,java,android,eclipse,screen,splash-screen,Java,Android,Eclipse,Screen,Splash Screen,我正在尝试使用这个java和xml代码实现一个初始屏幕。我从我的主要活动中创建了一个单独的java类,并将java代码放在其中。我在布局文件中创建了一个xml布局,并将xml代码放在其中。但是,我的应用程序正常显示,没有启动屏幕。它从不显示,但应用程序没有任何错误。Eclipse也没有显示任何错误。这可能是什么原因?先谢谢你。这是代码 爪哇: XML: 舱单: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:andr

我正在尝试使用这个java和xml代码实现一个初始屏幕。我从我的主要活动中创建了一个单独的java类,并将java代码放在其中。我在布局文件中创建了一个xml布局,并将xml代码放在其中。但是,我的应用程序正常显示,没有启动屏幕。它从不显示,但应用程序没有任何错误。Eclipse也没有显示任何错误。这可能是什么原因?先谢谢你。这是代码

爪哇:

XML:

舱单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.carouseldemo.main"
      android:versionCode="1"
      android:versionName="1.0"
      >

    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" android:screenOrientation="portrait"/>
    <application android:icon="@drawable/buttonone" android:label="@string/app_name">

        <activity android:name=".MainActivity" android:label="@string/app_name" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest> 

用以下内容替换处理程序部件:

Thread splashThread = new Thread() {
    public void run() {
                try {
                Thread.sleep(SPLASH_DISPLAY_LENGHT);
                } catch (Exception e) {
                } finally {
                Intent i = new Intent(Splash.this,Menu.class);
                startActivity(i);
                finish();
                }
            }
        };
    splashThread.start();

用以下内容替换处理程序部件:

Thread splashThread = new Thread() {
    public void run() {
                try {
                Thread.sleep(SPLASH_DISPLAY_LENGHT);
                } catch (Exception e) {
                } finally {
                Intent i = new Intent(Splash.this,Menu.class);
                startActivity(i);
                finish();
                }
            }
        };
    splashThread.start();

使用倒计时的另一种实现方法

在OnCreate内


使用倒计时的另一种实现方法

在OnCreate内

替换你的处理器

new Thread(new Runnable() {
    public void run() {
        try {
            Thread.sleep(SPLASH_TIME);
            startActivity(intent);
            finish();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}).start();
替换你的处理器

new Thread(new Runnable() {
    public void run() {
        try {
            Thread.sleep(SPLASH_TIME);
            startActivity(intent);
            finish();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}).start();
尝试如下:

编辑:

尝试如下:

编辑:

试试这个

在你的舱单上

<activity android:name="Splash" android:configChanges="keyboardHidden" android:theme="@android:style/Theme.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
试试这个

在你的舱单上

<activity android:name="Splash" android:configChanges="keyboardHidden" android:theme="@android:style/Theme.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

MainActivity是清单文件中的启动器活动。所以,水花没有出现

将启动器活动MainActivity更改为Splash,并为MainActivity编写另一个

<application android:icon="@drawable/buttonone" android:label="@string/app_name">

        <activity android:name=".Splash" android:label="@string/app_name" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity" />
    </application>

MainActivity是清单文件中的启动器活动。所以,水花没有出现

将启动器活动MainActivity更改为Splash,并为MainActivity编写另一个

<application android:icon="@drawable/buttonone" android:label="@string/app_name">

        <activity android:name=".Splash" android:label="@string/app_name" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity" />
    </application>

使用此代码,它可能会对您有所帮助

public class SplashScreenActivity extends Activity {

    protected int _splashTime = 2000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash_screen);

        Thread splashTread = new Thread() {
            @Override
            public void run() {
                try {
                    sleep(_splashTime);
                }
            } catch (InterruptedException e) {
                // do nothing
            } finally {
                startActivity(new Intent(SplashScreenActivity.this,
                        MainActivity.class));
                SplashScreenActivity.this.finish();
            }
        }
    };
    splashTread.start();
}

希望它能帮助您。

使用此代码,它可能会帮助您

public class SplashScreenActivity extends Activity {

    protected int _splashTime = 2000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash_screen);

        Thread splashTread = new Thread() {
            @Override
            public void run() {
                try {
                    sleep(_splashTime);
                }
            } catch (InterruptedException e) {
                // do nothing
            } finally {
                startActivity(new Intent(SplashScreenActivity.this,
                        MainActivity.class));
                SplashScreenActivity.this.finish();
            }
        }
    };
    splashTread.start();
}


希望它能对您有所帮助。

启动屏幕显示时间为1秒,您能否将其保留在4-5秒左右,然后再次检查。我将时间增加到了10秒。它显示了大约一秒钟的黑屏并打开了应用程序。清单文件呢?你是否已将初始屏幕注册为启动程序活动..你能在这里发布你的manisfest文件吗?你的java代码正常,不需要更改..这是一个小问题。我已用清单文件更新了我的问题。初始屏幕显示时间是1秒,你能不能把它保持在4-5秒左右,然后再检查一遍。我把时间增加到了10秒。它显示了大约一秒钟的黑屏并打开了应用程序。清单文件呢?你是否已将初始屏幕注册为启动程序活动..你能在这里发布你的manisfest文件吗?你的java代码正常,不需要更改..这是一个小问题。我已用清单文件更新了我的问题。初始屏幕仍然没有出现。感谢您的回复,您还有其他想法吗?Menu.class是关于什么的?我正在使用从我在这里找到的类似问题中找到的代码。在发布问题之前,我试着让它起作用。我只是一个初学者,这似乎是必要的。任何服务,你这是什么意思?你能说得更具体一点吗?检查清单文件:启动屏幕仍然没有出现。感谢您的回复,您还有其他想法吗?Menu.class是关于什么的?我正在使用从我在这里找到的类似问题中找到的代码。在发布问题之前,我试着让它起作用。我只是一个初学者,这似乎是必要的。任何服务,你这是什么意思?你能说得更具体一点吗?检查清单文件:除非我应该用我自己的代码替换意图?除非我应该用我自己的代码替换意图?你的代码没有带来错误,但是启动页面也没有出现。我可以看到您已经在清单中将定义的MainActivity设置为launcher。此外,您应该将Splash活动定义为launcher。请换一下。检查我的答案。你的代码没有带来错误,但是启动页面也没有出现。我可以看到你已经在清单中将定义的MainActivity设置为launcher。此外,您应该将Splash活动定义为launcher。请换一下。检查我的答案。我想知道我怎么能把MainActivity作为android名称,并在活动中同时使用Splash。感谢您演示这一点。每个人都是对的,但这就是问题的解决之道。我想知道我怎么能将MainActivity作为android名称,并在活动中同时使用Splash。感谢您演示这一点。每个人都是对的,但这就是解决问题的方法。
public class SplashScreenActivity extends Activity {

    protected int _splashTime = 2000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash_screen);

        Thread splashTread = new Thread() {
            @Override
            public void run() {
                try {
                    sleep(_splashTime);
                }
            } catch (InterruptedException e) {
                // do nothing
            } finally {
                startActivity(new Intent(SplashScreenActivity.this,
                        MainActivity.class));
                SplashScreenActivity.this.finish();
            }
        }
    };
    splashTread.start();
}
public class SplashScreenActivity extends Activity {

    protected int _splashTime = 2000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash_screen);

        Thread splashTread = new Thread() {
            @Override
            public void run() {
                try {
                    sleep(_splashTime);
                }
            } catch (InterruptedException e) {
                // do nothing
            } finally {
                startActivity(new Intent(SplashScreenActivity.this,
                        MainActivity.class));
                SplashScreenActivity.this.finish();
            }
        }
    };
    splashTread.start();
}