he un problema con dos actividades que no puedo resolver:Actividad lanzado desde el receptor de difusión, mantiene en tareas recientemente, a pesar de haber sido terminado
Tengo una Una actividad que los programas de una alarma con la alarma manager, en 3 segundos el receptor de alarma lanza una actividad B que solo tiene un botón de finalización.
Si programo el administrador de alarmas desde A y termino esta actividad presionando el botón Atrás, en 3 segundos aparece la actividad B. Todo normal. El problema es el siguiente: si vuelvo a abrir la aplicación mediante el iniciador, el sistema inicia la actividad A, pero si comienzo la aplicación presionando prolongadamente el botón de inicio (tareas usadas recientemente) siempre abro la actividad B. Necesito que cuando termine la actividad B, si vuelvo a abrir la aplicación desde cualquier lugar, la actividad A debería abrirse.
He intentado agregar noHistory a la actividad B, pero el problema continúa.
Este es el código de una actividad:
public class ActivityA extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_a);
Button b=(Button) findViewById(R.id.initTimer);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
programTimer();
}
});
}
private void programTimer() {
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, AlarmReciver.class);
PendingIntent pIntent = PendingIntent.getBroadcast(this, 1, intent, PendingIntent.FLAG_CANCEL_CURRENT);
manager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+3000 , pIntent);
}
}
actividad B:
public class ActivityB extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_b);
Button button= (Button) findViewById(R.id.bFinish);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}
AlarmReciver:
public class AlarmReciver extends android.content.BroadcastReceiver {
private static final String DEBUG_TAG="ReceptorAlarma";
@Override
public void onReceive(Context context, android.content.Intent intent) {
//lanzar activity
Intent i = new Intent(context, ActivityB.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
Manifiesto:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".ActivityA"
android:label="@string/title_activity_activity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ActivityB">
</activity>
<receiver android:name=".AlarmReciver" >
</receiver>
</application>
gracias por su tiempo.