| # Async Event RPC Example |
| |
| This example shows you how to use the @AsyncRpc annotation of Mobly snippet lib |
| to handle asynchronous callbacks. |
| |
| See the source code in `ExampleAsyncSnippet.java` for details. |
| |
| ## Running the example code |
| |
| This folder contains a fully working example of a standalone snippet apk. |
| |
| 1. Compile the example |
| |
| ./gradlew examples:ex3_async_event:assembleDebug |
| |
| 1. Install the apk on your phone |
| |
| adb install -r ./examples/ex3_async_event/build/outputs/apk/debug/ex3_async_event-debug.apk |
| |
| 1. Use `snippet_shell` from mobly to trigger `tryEvent()`: |
| |
| snippet_shell.py com.google.android.mobly.snippet.example3 |
| |
| >>> handler = s.tryEvent(42) |
| >>> print("Not blocked, can do stuff here") |
| >>> event = handler.waitAndGet('AsyncTaskResult') # Blocks until the event is received |
| |
| Now let's see the content of the event |
| |
| >>> import pprint |
| >>> pprint.pprint(event) |
| { |
| 'callbackId': '2-1', |
| 'name': 'AsyncTaskResult', |
| 'time': 20460228696, |
| 'data': { |
| 'exampleData': "Here's a simple event.", |
| 'successful': True, |
| 'secretNumber': 12 |
| } |
| } |