Au lancement de mon application, j'ai creer un broadcast pour envoyer le nom de l'utilisateur connecté avec son phone. mon soucis c'est je ne sait pas si lorsque l'utilisateur se connectera à un reseau wifi, le broadcast ira a travers le réseaux
le code de mon broadcast
public class MyBinder extends Binder{
MyService getService(){
return MyService.this;
}
}
@Override
public IBinder onBind(Intent arg0) {
return new MyBinder();
}
@Override
public void onCreate() {
timer = new Timer();
task = new TimerTask(){
@Override
public void run() {
Users user=new Users(getApplicationContext());
Login login=user.getCompte();
if(!user.isEmpty()){
PSEUDO=login.getPseudo();
}
if(login.getProfil().getAdresseIp()!="null"){
PSEUDO_ID=login.getProfil().getAdresseIp();
}
Intent intent = new Intent(EVENT_ACTION);
intent.putExtra("pseudo", PSEUDO);
intent.putExtra("pseudo_ip", PSEUDO_ID);
MyService.this.sendBroadcast(intent);
}
};
super.onCreate();
}
@Override
public void onDestroy() {
timer.cancel();
super.onDestroy();
}
@Override
public void onStart(Intent intent, int startId) {
if(started==false){
timer.scheduleAtFixedRate(task, 0, 3000);
started=true;
}
super.onStart(intent, startId);
}
EN fait j'ai utilise un service. et dans mon Main, j'ai ce qui suit
//Rexecuter le timer toute les 10 secondes
findedTimer.scheduleAtFixedRate(findedTask, 0, 10000);
//Le Broadcast receiver
Receiver receiver = new Receiver();
//Receiver filter
IntentFilter filter = new IntentFilter(MyService.EVENT_ACTION);
//Enregistremen du receiver
registerReceiver(receiver, filter);
//Demarrage du service, sinon
if(!MyService.started){
Intent bindIntent = new Intent(this, MyService.class);
if(startService(bindIntent)!=null){
MyService.started=true;
}
}
la vie n'est pas belle comme ça?