2017-08-06 95 views
0

我已經看到了這個問題: Disable back button in android (請不要標記爲重複這一點。)禁用後退按鈕上的多個活動(安卓)

我的查詢是這樣的: 我有一排20周的活動。我想禁用後退按鈕,以便用戶永遠不會回到他曾經穿過的活動。目前,我如何做到這一點是覆蓋onBackPressed()並刪除super.onBackPressed()呼叫。這工作正常。

我現在需要添加四十多個活動,它應該具有相同的效果。有沒有一種方法可以禁用整個應用程序的後退按鈕,而無需在每個Activity中對其進行編碼?

回答

3

使用此BaseActivity創建BaseActivity並擴展每個活動,並在BaseActivity中添加onBackPressed()邏輯。

例:

public class BaseActivity extends AppCompatActivity { 

    // Add your onBackPressed() logic here 
} 

您的活動,

public class MyActivityA extends BaseActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_my_activity); 
    } 
} 
+0

創建一個不會「做」任何事情並且不會向用戶顯示的活動是不是很好的做法? –

+0

這就像AppCompatActivity,它擴展了FragmentActivity,它擴展了Soo。在你的圖層中,你正在創建一個它。你可以在你的活動中添加你正在做的事情。 **注意:BaseActivity你不需要添加在Mainfest ** –

+0

我認爲這是最乾淨的方式來做到這一點。使用基本的OOP繼承原則。 :) 謝謝。 –

0

U可以通過完成前面的活動來完成此任務,同時進行下一個活動。

+0

我不能完成以前的活動,因爲我的應用程序被另一個應用程序,它需要一些數據傳回叫。因此,我正在使用onActivityResult()將我的數據從應用程序的最後一個活動中通過應用程序的第一個活動傳播回到調用我的應用程序中。而且,這意味着必須在每個Activity中寫入'finish()'。我正在尋找只能做一次的事情。 –