J'ai une implémentation de WallpaperService.Engine qui utilise JNI pour créer un C++ renderer:Android JNI: comment implémenter un objet C++ créé et supprimé avec mon objet Java?
Engine (Java) -> Renderer (C++)
Si le moteur de rendu était le code Java je pourrais simplement dire
private Renderer renderer = new Renderer();
pour vous assurer que le moteur de rendu a été créé avec mon moteur et détruit automatiquement quand il n'est plus nécessaire. Alors, quelle est la façon la plus propre de le faire?
P.S .: Je pensais:
int rendererId = createNativeRenderer();
...
draw(rendererId); // call all native renderer methods specifying the object id
...
deleteNativeRenderer(rendererId);
Mais ce n'est pas très élégant car il nécessite la suppression explicite, ce qui est facile d'oublier.