按“返回”按钮时避免闪屏活动

时间:2014-01-05 12:36:06

标签: java android android-activity

在我的申请中,我有两项活动。首先是启动画面,它只显示应用程序名称和其他一些信息。点击启动画面活动后,我正在加载主要活动。我的应用程序工作正常,但我面临一个小问题。如果我从我的主要活动中按回按钮,则控制将进入闪屏活动。但是我不想再次显示启动画面活动,我想在按下“返回”按钮时避免启动画面活动。

有可能吗?如果是这样的话?

6 个答案:

答案 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);


}}