![](/img/trans.png)
[英]How to go back to the previously opened application while finishing an Activity in Android
[英]how to go back after finishing the activity of sending email
我有一個帶有發送按鈕的片段。
單擊發送按鈕后,活動開始以從設備選擇電子郵件客戶端。
選擇電子郵件客戶端並發送郵件后,它將按預期再次返回到片段。
但是,由於我們的郵件發送任務已完成,因此無需具有片段視圖。
因此,我們希望在成功發送郵件后返回上一個活動。
怎么做?
我試過了:
getActivity().getSupportFragmentManager().popBackStack();
但這是行不通的。
我的發送按鈕單擊代碼是:
view.findViewById(R.id.sendbtn).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
startActivityForResult(Intent.createChooser(email, "Choose an Email client :"),2);
getActivity().getSupportFragmentManager().popBackStack(); //this is not working to go back.
}
});
發送郵件(固定)后,您可以嘗試刪除該片段:
getActivity().getSupportFragmentManager().beginTransaction().remove(MailFragment.this).commit();
但是請記住,只有使用FragmentTransaction
和.add()
方法動態添加了它,才能將其刪除。 如果片段是用XML添加的,則remove方法將不起作用。
要動態添加片段,您應該執行以下操作:
MailFragment mailFragment = new MailFragment();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.containerForFragments, mailFragment).commit();
然后,您可以通過.remove()
方法刪除此片段。
順便說一句,除了刪除片段,您可以嘗試將其隱藏(不會從內存中刪除):
getActivity().getSupportFragmentManager().beginTransaction().hide(MailFragment.this).commit();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.