Вы можете использовать 'startActivityForResult()'. Это запустит действие, а затем, когда это будет сделано, оно позволит вам вернуть некоторые данные в функцию обратного вызова в фрагменте, который вы переопределите. Вот пример:
private void ActivityBStarter(){
Intent i = new Intent(getApplicationContext(),ActivityB.class);
startActivtyForResult(i);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data){
//use data.get... to get data from the activity.
//This is only called when the activity completes.
}
Затем в деятельности, сделать это, когда вы хотите, чтобы закончить свою деятельность и передать результат обратно:
Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(RESULT_OK,returnIntent); //RESULT_OK can really be any int you want.
finish();
В качестве альтернативы можно использовать посланник и передачу сообщения для передачи данных между вашей Activity и фрагментом, поскольку ActivityB запущен, но это обычно не очень полезно, если вы не используете Сервис.
Вот ссылка: Example: Communication between Activity and Service using Messaging
Успехов!
отправить что? что ты уже испробовал? BroadcastReciver? Обслуживание? пользовательский класс приложения? почему бы вам не вернуть данные из Activity B в A, а затем позволить Activity A отправить его в Fragment A ... – Selvin
Я думал об этом, есть ли более прямое решение. Проблема в том, что активность A может быть уничтожена после запуска активности. B – mskw
Я попытался использовать постоянство, где установка булева в комплекте. Но это похоже на взлом – mskw