mirror of https://github.com/opencv/opencv.git
Open Source Computer Vision Library
https://opencv.org/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.0 KiB
63 lines
2.0 KiB
********************************************* |
|
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.
|
|
|