Mam problem z dwoma działaniami, że nie mogę rozwiązać:Działalność rozpoczęła od odbiornika transmisji, zachowuje się ostatnio zadań pomimo zostały zakończone
Mam aktywności że programy alarm z alarmem menedżer, w ciągu 3 sekund odbiornik alarmu uruchamia działanie B, które ma tylko przycisk zakończenia.
Jeśli zaprogramuję menedżera alarmów z A i zakończę tę czynność, naciskając przycisk Wstecz, w ciągu 3 sekund pojawi się aktywność B. Wszystko normalne. Problem jest następujący: jeśli ponownie uruchomię aplikację za pomocą programu uruchamiającego, system rozpocznie działanie A, ale jeśli uruchomię aplikację przez długie naciśnięcie przycisku home (ostatnio używane zadania), zawsze otwieram działanie B. Potrzebuję tego, gdy kończę działanie B, jeśli ponownie otworzę aplikację z dowolnego miejsca, działanie A powinno się otworzyć.
Próbowałem dodać noHistory do działania B, ale problem jest kontynuowany.
Oto kod A aktywności:
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);
}
}
Aktywność 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);
}
}
Oczywisty:
<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>
dzięki za poświęcony czas.