BaseLoaderCallback
¶Basic implementation of LoaderCallbackInterface
. Logic of this implementation is
well-described by the following scheme:
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");
}
}
|
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.