在我的申请中,我有两项活动。首先是启动画面,它只显示应用程序名称和其他一些信息。点击启动画面活动后,我正在加载主要活动。我的应用程序工作正常,但我面临一个小问题。如果我从我的主要活动中按回按钮,则控制将进入闪屏活动。但是我不想再次显示启动画面活动,我想在按下“返回”按钮时避免启动画面活动。
有可能吗?如果是这样的话?
答案 0 :(得分:50)
在您的AndroidManifest.xml
文件中,在启动画面android:noHistory="true"
中添加<activity>
属性。
答案 1 :(得分:3)
据我了解,您希望在更改活动后不显示启动活动。你应该注意活动保存在堆栈上,并开始新的活动推送它,并完成你弹出顶部堆栈。我认为,如果您调用finish()
方法解决了问题,请在启动屏幕活动中调用StartActivity,在
finish()
public void onClick(View v) {
Intent intent = new Intent(Main.this, Splash.class);
startActivity(intent);
finish();
}
希望有用:)
答案 2 :(得分:1)
您可以致电
finish();
在启动屏幕中,当您跳到第二个屏幕时。
答案 3 :(得分:0)
除了以上答案外,您还应注意
1:通过调用finish()方法进行Splash活动 将在执行后关闭,这意味着不会 在堆栈中可用。
@Override
protected void onCreate(Bundle saveInstsnceState){
super.onCreate( saveInstanceState);
\\ do something here
Intent intentSplash = new Intent(SplashActivity.this, NextActivity.class);
StartActivity(intentSplash);
finish ();
}
您将使用上述方法实现目标 但是...
2:如果要阻止用户使用武力 退出应用程序(按返回按钮)时, 飞溅活动仍在进行中,这是最好的 在android中练习,那么您需要调用 onBackPressed()方法。
Class NoBackSplash{
@Override
protected void onCreate(Bundle saveInstsnceState){
super.onCreate( saveInstanceState);
\\ do something here
Intent intentSplash = new Intent(SplashActivity.this, NextActivity.class);
StartActivity(intentSplash);
finish ();
}
@Override
public void OnBackPressed(){
};
}
使用此OnBackPressed()方法,无论用户如何努力,都不会迫使您的启动活动退出。
答案 4 :(得分:0)
我了解,您希望在单击后退按钮时不显示启动活动。首先你应该知道android上的所有活动都是STACK的形式。所以我们需要的只是在它执行后结束飞溅活动。我们可以通过在 android studio 中调用 finish() 方法来做到这一点。这是解决方案:
Intent intent = new Intent(MainActivity.this, home.class);
startActivity(intent);
finish();
答案 5 :(得分:0)
public class Splash extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
Handler hd = new Handler();
hd.postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(Splash.this,MainActivity.class);
startActivity(i);
#by calling finish() method,splash activity will close after execution
finish();
}
},3000);
}}