Bonjour,
j'utilise les localisations gps, et je souhaites relever la position (géolocalisée) toutes les "tempsDeReleve" secondes.

Mon activité principale MapsActivity, implemente LocationListener.
Je défini l'alarme à partir du moment ou je dois commencer le relevé de position :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
        // AlamrManager Classe : MapsActivity
        Intent intent = new Intent(MapsActivity.this,LocationReceiver.class );
 
        pending_intent = PendingIntent.getBroadcast(MapsActivity.this, 0, intent, 0);
        long REPEAT_TIME = 1000 * tempsDeReleve;
        alarme_manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        alarme_manager.setRepeating(AlarmManager.RTC_WAKEUP, date.getTimeInMillis(), REPEAT_TIME, pending_intent);
la méthode static suivante d'une classe (LocationReceiver) héritant de BroadcastReceiver,
MapsActivity.montexteStatic().setText(strDate); s'exécute bien à REPEAT_TIME secondes.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
@Override
    public void onReceive(Context context, Intent intent) {
 
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd:MMMM:yyyy HH:mm:ss a");
        final String strDate = simpleDateFormat.format(calendar.getTime());       
        MapsActivity.montexteStatic().setText(strDate);
 
       // MapsActivity.relevePosition();
       // MapsActivity.faireTracer();
 
    }
Je voudrais lancer aussi relevePosition() et faireTacer(), sans avoir à rendre toutes les variables static.

Peut-on à partir du Context context retrouver l'instance de l'objet appelant MapsActivity? ou autre ?
--------------------------------------------

résolu en passant par une classe intermédiaire qui crée l'alarm et conserve un pointeur sur la MapActivité, permettant au BroadcastReceiver d'utiliser la méthode de classe static de cette classe intermédiaire