Bonjour,
Je souhaite me servir d'un service en tant que controller d'un MVC. Théoriquement ça devrait marcher, mais j'ai un souci.
J'instancie mon service dans l'activity principale. C'est lui qui gèrera ensuite l'affichage des activity successives.
Pour le lancement de la première activity, pas de souci: je bind le service, je fais mes traitements et je récupère un résultat. Je lance ensuite une seconde activity, mais j'ai un souci: je bind le service, mais quand je souhaite accéder à une donnée j'obtiens un "java null pointer exception".
Voilà un bout de mon code:
Dans chaque activity j'ai ça:
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
21
22
23
24
25
26
27
28
29 private MyController mController private ServiceConnection mControllerConnection = new ServiceConnection() { public void onServiceConnected(ComponentName className, IBinder service) { LocalBinder binder = (LocalBinder) service; mController = binder.getService(); mBound = true; } @Override protected void onStart() { super.onStart(); Intent intent = new Intent(this, MyController.class); bindService(intent, mControllerConnection, Context.BIND_AUTO_CREATE); EditText editTextAmount = (EditText) findViewById(R.id.edtTxtAmount1); try{ editTextAmount.setText(mController.donnée_à_récupérer); } catch (Exception e){ editTextAmount.setText(e.toString()); // cette exception est levée } } @Override protected void onDestroy() { unbindService(mControllerConnection); super.onDestroy(); }
Et dans le service, je lance les activity comme ceci:
J'ai pensé à un problème de flag mais je n'ai pas tout compris.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Intent intent = new Intent(this, NextActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
Merci d'avance
Partager