2016-10-21 27 views
0

從外部意圖返回(例如電子郵件/ watsapp等)後,從Activity中清除片段的最佳方式是什麼 從隱式意圖返回後,我想要清除(從背後清除)片段調用(例如ACTION_SEND)。我想清除片段,但我不想關閉活動。 我已經嘗試'getActivity()。onBackPressed()' - 在這種情況下我的活動出現在'email/sms'意圖被調用之前。 我想從外部意圖回來後清除此片段。如何從其他應用程序返回後從活動中清除碎片?

回答

0

如果您在使用startactivityforresult進行發送操作時正在獲取onactivityResult方法中的任何回調,請嘗試。

0

下面是我做到的。我設置一個標誌,每當我觸發意圖外部應用

private static final int REQUEST_INTENT_SENT = 1000; 
private boolean intentSent; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    findViewById(R.id.send_intent).setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent sendIntent = new Intent(); 
      sendIntent.setAction(Intent.ACTION_SEND); 
      sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); 
      sendIntent.setType("text/plain"); 
      startActivityForResult(sendIntent, REQUEST_INTENT_SENT); 
      intentSent = true; 
     } 
    }); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 

    if(intentSent){ 
     intentSent = false; 
     //Clear your fragment here 
    } 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if(requestCode == REQUEST_INTENT_SENT && resultCode == Activity.RESULT_CANCELED){ 
     intentSent = false; 
    } 
} 
0

嘗試此代碼

FragmentManager fragmentManager = getFragmentManager(); fragmentManager.popBackStack(null,FragmentManager.POP_BACK_STACK_INCLUSIVE);

0

你可以試試這個代碼在onActivityResult:

Fragment fragment = getSupportFragmentManager().findFragmentByTag(TAG_FRAGMENT); 
if(fragment != null) { 
    getSupportFragmentManager().beginTransaction().remove(fragment).commit(); 
} 
相關問題