我为我的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();
}
}
答案 0 :(得分:5)
您可以在 AndroidManifest.xml 中使用android:noHistory="true"
标签中的<activity>
实施启动画面。
答案 1 :(得分:3)
如果用户触摸mainactivity上的“后退”按钮,应用程序必须在没有启动画面的情况下进入android菜单。我该如何解决?
您可能会发现使用Handler和Runnable更容易创建延迟,但只需在finish()
后调用startActivity()
。
答案 2 :(得分:3)
首先,不要使用启动画面。
然而,您必须致电finish()
并使用Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK
开始新活动。
答案 3 :(得分:0)
您需要添加onStop()
以指定在不再显示初始屏幕时要执行的操作。
从那里拨打finish()
。
答案 4 :(得分:0)
我强烈建议您不要使用启动画面,只是为了拥有启动画面。
如果您在准备向用户显示UI(即从某些来源加载数据)之前需要执行一些长时间运行的任务,那么在加载该数据时显示启动是合适的。否则你只是在浪费你的用户时间。
5秒似乎不是很长时间,但是当你的用户坐在那里盯着无用的闪屏时,这对他们来说似乎是永恒的。
如果您觉得必须使用闪屏,请阅读并吸收此页面上的知识:SplashScreens Done Right
阅读完之后,请按照他使用的示例进行操作,以便尽可能少地骚扰您的用户。