Tenho em minha aplicação diversas chamadas entre as activities, onde utilizo em sua grande maioria a opção de startActivityForResult. Mas tenho uma activity que ao clicar no botão voltar da aplicação utilizando o método NavUtils.navigateUpFromSameTask(this); ele não chama o onActivityResult da activity pai, indo direto para o onCreate.
Fiz um teste utilizando método onBackPressed com o finish() e aí funcionou, ele chamou o onActivityResult para esta activity. Mas o engraçado é que em outras activities eu faço a mesma coisa (utilizando o NavUtils.navigateUpFromSameTask(this) e ele chama o activityResult.
Alguém já passou por isso?
Segue abaixo os códigos caso queiram analisar:
Activity filha
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
Intent it = new Intent();
it.putExtra(PRODUTO_SELECIONADO, (Serializable) pedidoItem);
it.putExtra(CLIENTE_SELECIONADO, pedidoCabecalho);
it.putExtra(SUBTOTAL, subTotalSt);
setResult(2, it);
NavUtils.navigateUpFromSameTask(this);
}
return super.onOptionsItemSelected(item);
}
AndroidManifest
<activity
android:name=".activity.TesteActivity"
android:label="@string/title_activity_teste"
android:theme="@style/Theme.MyTheme"
android:parentActivityName=".activity.ResumoPedidoActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activity.ResumoPedidoActivity" />
</activity>