********************************************* Base Loader Callback Interface Implementation ********************************************* .. highlight:: java .. class:: BaseLoaderCallback Basic implementation of ``LoaderCallbackInterface``. Logic of this implementation is well-described by the following scheme: .. image:: img/AndroidAppUsageModel.png Using in Java Activity ---------------------- There is a very base code snippet implementing the async initialization with ``BaseLoaderCallback``. See the "15-puzzle" OpenCV sample for details. .. code-block:: java :linenos: public class MyActivity extends Activity implements HelperCallbackInterface { private BaseLoaderCallback mOpenCVCallBack = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: { Log.i(TAG, "OpenCV loaded successfully"); // Create and set View mView = new puzzle15View(mAppContext); setContentView(mView); } break; default: { super.onManagerConnected(status); } break; } } }; /** Call on every application resume **/ @Override protected void onResume() { Log.i(TAG, "Called onResume"); super.onResume(); Log.i(TAG, "Trying to load OpenCV library"); if (!OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_6, this, mOpenCVCallBack)) { Log.e(TAG, "Cannot connect to OpenCV Manager"); } } Using in Service ---------------- Default ``BaseLoaderCallback`` implementation treats application context as ``Activity`` and calls ``Activity.finish()`` method to exit in case of initialization failure. To override this behavior you need to override ``finish()`` method of ``BaseLoaderCallback`` class and implement your own finalization method.