簡體   English   中英

按下后退按鈕時避免啟動屏幕活動

[英]Avoid splash screen activity when pressing Back button

在我的應用程序中,我有兩個活動。 首先是一個閃屏,它只顯示應用程序名稱和其他一些信息。 單擊啟動屏幕活動后,我正在加載主要活動。 我的應用程序運行良好,但我面臨一個小問題。 如果我從我的主要活動中按下后退按鈕,控制將啟動屏幕活動。 但我不想再次顯示閃屏活動,我想在按下后退按鈕時避免閃屏活動。

有可能嗎? 如果是這樣怎么辦?

在您的AndroidManifest.xml文件中,在您的啟動畫面<activity>添加android:noHistory="true"屬性。

據我了解,您希望在更改活動后不顯示啟動活動。 您應該注意活動保存在堆棧上,並開始新的活動推送,完成后彈出堆棧。 我認為,如果您調用finish()方法,您的問題將在您調用 StartActivity insert finish()之后的初始屏幕活動中解決

public void onClick(View v) {
    Intent intent = new Intent(Main.this, Splash.class);
    startActivity(intent);
    finish();
}

希望有用:)

你可以打電話

finish();

當您跳轉到第二個屏幕時,在您的啟動畫面中。

除了上述答案,您還應該注意:

1:通過調用finish()方法,Splash Activity 將在執行后關閉,這意味着它在堆棧中將不可用。

@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() 方法,無論用戶如何努力,您的啟動活動都不會被迫退出。

我了解,您希望在單擊后退按鈕時不顯示啟動活動。 首先你應該知道android上的所有活動都是以STACK的形式存在的。 所以我們需要的只是在它執行后結束飛濺活動。 我們可以通過調用 android studio 中的finish()方法來做到這一點。 這是解決方案:

Intent intent = new Intent(MainActivity.this, home.class);
startActivity(intent);
finish();
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);


}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM