billthefarmer / tuner

Android accordion tuner
176 stars 55 forks source link

Refactor Leaking Thread smell in MainActivity class #38

Closed emaiannone closed 4 years ago

emaiannone commented 4 years ago

Hi, I'm Emanuele Iannone, a master student at University of Salerno. Since my bachelor's thesis I have been working on a code smell refactoring plugin called aDoctor, which is able to identify and fix energy-related problems in Android apps. I launched it on your project, finding different instances of code smells. I chose one of them and let the plugin automatically fix it. In this case I chose Leaking Thread, that is present when in an Activity there is an instance level thread that is launched and never stopped, so not allowing the GC to remove it even when that activity instance has been removed. These kind of smell may have a non trivial impact on energy consumption, as shown in this paper: https://www.sciencedirect.com/science/article/pii/S0950584918301678. Besides, this kind of refactoring does not impact on the functionalities of your app, so it is totally safe. Let me know if you are interested in this refactoring proposal.

billthefarmer commented 4 years ago

This fails the check and is redundant because the thread is stopped gracefully in onPause() and thread.stop() is [deprecated](https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#stop()).