0

我为我的 android 应用程序创建了一个启动画面。我的问题很简单。5 秒后闪屏消失,主要活动开始工作。然后,如果我单击“返回”按钮,它会再次返回启动画面。但我不想要这个。

如果用户在 mainactivity 上触摸“返回”按钮,应用程序必须进入没有启动屏幕的 android 菜单。我该如何解决?

package com.example.androidfirst;

import android.app.Activity;

public class SplashActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    setContentView(R.layout.splash_screen);

    Thread timer = new Thread() {   //new Thread
        @Override
        public void run() {

            try {
                sleep(5000);
            }
            catch (InterruptedException e) {

                e.printStackTrace();
            }
            finally {
                Intent MainAct = new Intent("com.example.androidfirst.MAINACTIVITY");
                startActivity(MainAct);

                try {
                    this.finalize();
                }
                catch (Throwable e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

        }

    };

    timer.start();

}

}
4

5 回答 5

5

您可以在您的AndroidManifest.xml中使用启动画面的android:noHistory="true"in<activity>标记来实现。

于 2015-09-09T11:20:49.773 回答
3

如果用户在 mainactivity 上触摸“返回”按钮,应用程序必须进入没有启动屏幕的 android 菜单。我该如何解决?

您可能会发现使用HandlerRunnable是一种更简单的方法来创建延迟,但只需调用finish()after startActivity()

于 2013-02-12T21:14:13.507 回答
3

首先,不要使用闪屏。

不过,您必须使用 调用finish()和/或开始新活动Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK

于 2013-02-12T21:17:11.187 回答
0

您需要添加onStop()以指定在启动屏幕不再可见时要执行的操作。

finish()从那里打电话。

于 2013-02-12T21:17:30.533 回答
0

我强烈建议您不要仅仅为了拥有启动画面而使用启动画面。

如果在准备好向用户显示 UI(即从某个来源加载数据)之前需要执行一些长时间运行的任务,那么在加载该数据时显示启动画面是合适的。否则你只是在浪费你的用户时间。

5 秒似乎并不长,但是当您的用户坐在那里盯着无用的启动画面时,那段时间对他们来说似乎是永恒的。

如果您觉得必须使用闪屏,请阅读并吸收此页面上的知识:SplashScreens Done Right

阅读完之后,请遵循他使用的示例,以便至少尽可能少地惹恼您的用户。

于 2013-02-12T21:26:18.730 回答