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.
60 lines
1.9 KiB
60 lines
1.9 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_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. |
|
|
|
|