bonjour,
j'ai une activité A (DeclencheTime.class) qui passe en arrière plan :
Avec une alarme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_HOME); startActivity(mainIntent);
lorsque l'alarme s’exécute :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 //Récupération de l'instance du service AlarmManager. AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE); //On instancie l'Intent qui va être appelé au moment du reveil. Intent intent = new Intent(this, AlarmReceiver.class); //On créer le pending Intent qui identifie l'Intent de reveil avec un ID et un/des flag(s) PendingIntent pendingintent = PendingIntent.getBroadcast(this, ALARM_ID, intent, 0);
je dois revenir vers l'activité appelante et passer par le OnRestart();
voici le code de AlarmReceiver :
Sur l'émulateur cela marche très bien, je passe par le OnRestart() et j'affiche mes TextView().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public class AlarmReceiver extends BroadcastReceiver{ public static final int ID_NOTIFICATION = 1963; @Override public void onReceive(Context context, Intent intent) { try { NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); Notification notification = new Notification(R.drawable.seBalader, "notification Se Balader !", System.currentTimeMillis()); Intent defineIntent = new Intent(context, DeclencheTime.class); defineIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_SINGLE_TOP); final PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, defineIntent, 0);
Mes dès que j'exécute mon code sur le Téléphone via USB celui-ci ne passe pas par le OnRestart()
Je ne comprend rien Du tout, y a t'il des différences fondamentales entre l'émulateur et le téléphone ????
même en mettant singleTop sur l'activité et en changeant
Par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 defineIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT );
qui signifie d'effacer l'ensemble des activités qui sont sur la tâche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 defineIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
cela marche sur l'émulateur mais pas sur téléphone.
en plus je ne passe pas par le OnRestart(); Mais par le OnResume();
peut-être parce que l'activité DeclencheTime.class et une MapActivity
je ne comprend rien du tout
Comment placer une activité en haut de la tâche et passer par le OnRestart() ???
Merci de vos réponses
cordialement
Partager