********************************************* 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_2, this, mOpenCVCallBack)) { Log.e(TAG, "Cannot connect to OpenCV Manager"); } } Using in Service ---------------- Default BaseLoaderCallback implementation treat 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.