javaandroidthreetenbp

Is the call to AndroidThreeTen.init() mandatory?


The ThreeTenABP README instructs users to isert a call to AndroidThreeTen.init() into their application’s onCreate() method. And yes, that’s the (supposedly faster) Android adaptation of ThreeTenBP, not the original (fully portable) ThreeTenBP.

However, if I omit the call, my app seems to run fine and without any obvious errors. Is this method just there to speed up things, anticipating a possibly lengthy initialization so it won’t slow you down on first use (eager vs. lazy initialization)? Or do I risk getting incorrect results if I don’t initialize ThreeTenABP properly?


Solution

  • This question describes an error resulting from failure to initialize the library.

    Main takeaway: if you fail to initialize ThreeTenABP, certain method calls (those that rely upon time zone data) will throw an exception.

    Not sure what happens if you have tested each ThreeTenABP call in your code and have made sure none of them throws an exception. This is most likely an unsupported configuration.