64 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| *********************************************
 | |
| 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.
 | 
