2012-01-25 4 views
2

У меня есть два действия (ACT1 и ACT2), и оба вызывают другое действие (ACT3), используя startActivityForResult (цель, 0). Я очень странно, потому что ACT1 правильно получает результат в своем методе onActivityResult, но ACT2 этого не делает. В этом случае просто onActivityResult не запускается. ¿Есть причина для этого, или это ошибка?Повторное использование двух действий, через startActivityForResult

Заранее спасибо!

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); 
} 
+2

нужно увидеть код. После того, как Act3 завершит вам вызов finish(), прежде чем пытаться запустить его снова с act2? – nwaltham

+0

Будьте более ясны, что означает «неправильно». Отправьте соответствующий код - вы можете отредактировать свой вопрос для этой цели. –

+0

ACT1 вызывается вместо вызова ACT2, т.е. ACT1 работает в фоновом режиме, что-то похожее на него? – Jana

ответ

0

в ACT3, попробуйте изменить

intent = new Intent(); 

с

Intent intent = getIntent(); 
Смежные вопросы