Base Loader Callback Interface Implementation

class BaseLoaderCallback

Basic implementation of LoaderCallbackInterface. Logic of this implementation is well-described by the following scheme:

../../../../_images/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.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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.