[英]Customizing Back Stack in Android Activities
考慮有一個活動稱為活動S。
然后會有很多活動,例如10個活動,分別命名為A,B,C,...,J。
我該如何實現:
在A–J活動中,當按下“后退”按鈕時,請始終返回活動S。
不論順序或活動如何創建。
例如:
從S出發,依次轉到B,D,G。
在活動G中,按返回按鈕,然后返回到S。
==編輯==
離開所有AJ活動時是否應該使用Activity.finish()
方法?
您可以根據所需的確切結果以不同的方式完成此操作。 您可以將以下行添加到這些Activities
manifest.xml
<activity>
標記中
android:noHistory="true"
或在每個參數中覆蓋onBackPressed()
時使用Intent
標志
@Override
public void onBackPressed()
{
Intent i = new Intent(CurrentActivity.this, S.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);`
startActivity(i);
super.onBackPressed();
}
這將從堆棧中清除其他Activities
,並返回到S
如果您想在返回S
時將Activities
保留在堆棧上,則可以更改使用的標志
@Override
public void onBackPressed()
{
Intent i = new Intent(CurrentActivity.this, S.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);`
startActivity(i);
super.onBackPressed();
}
最后一種方法將把S
放在最前面,並將其他Activities
保留在堆棧中,我認為這不是您想要的,而只是另一種選擇。 您可能會想要前兩種方式之一。
您必須這樣做,設置一個標志,該標志將清除堆棧中的每個活動並將意圖傳遞給S.class,如下所示
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
Intent intent=new Intent(this,S.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.