У меня есть два действия (ACT1 и ACT2), и оба вызывают другое действие (ACT3), используя startActivityForResult (намерение, 0). Я не очень странный, потому что ACT1 правильно получает результат в своем методе onActivityResult, а ACT2 - нет. Просто onActivityResult в этом случае не срабатывает. ¿Для этого есть причина, или это ошибка?
Заранее спасибо!
p.s: добавлен код
public class ACT1 extends Activity
{
.........
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
..........
Intent intent = new Intent(this, ACT3.class);
startActivityForResult(intent, 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
Log.d(TAG, "ACT1: onActivityResult");
this.finish();
}
}
public class ACT2 extends Activity
{
.........
@Override
protected void onListItemClick(ListView l, View v, int position, long id)
{
..........
Intent intent = new Intent(this, ACT3.class);
startActivityForResult(intent, 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
Log.d(TAG, "ACT2: onActivityResult");
this.finish();
}
}
public class ACT3 extends Activity
{
.......
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.phaBtnAceptar:
intent = new Intent();
intent.putExtra("alarmTime", alarmTime);
setResult(Activity.RESULT_OK, intent);
finish();
break;
........
}
}
}
здесь метод, который устанавливает сигнал тревоги, который вызывает ACT2 (AlarmaListaActivity)
private static void asignarAlarma(Context ctx, String idLista, String nombreLista, long horaInicioAlarma)
{
String idAlarma = DAOMarket.getInstance().insertarAlarma(idLista, nombreLista, "" + horaInicioAlarma, "0");
Intent intent = new Intent(ctx, ACT2.class);
intent.putExtra("idLista", idLista);
intent.putExtra("nombreLista", nombreLista);
intent.putExtra("horaInicioAlarma", horaInicioAlarma);
PendingIntent mAlarmSender = PendingIntent.getActivity(ctx, Integer.parseInt(idAlarma), intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) ctx.getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, horaInicioAlarma, mAlarmSender);
}