1{ 2 "methods": { 3 "__constructor__(boolean)": { 4 "isImplementation": true, 5 "modifiers": [ 6 "protected" 7 ], 8 "params": [ 9 "quitAllowed" 10 ], 11 "returnType": "void", 12 "exceptions": [], 13 "name": "__constructor__(boolean)" 14 }, 15 "doLoop()": { 16 "isImplementation": false, 17 "modifiers": [ 18 "private" 19 ], 20 "params": [], 21 "returnType": "void", 22 "exceptions": [], 23 "name": "doLoop()" 24 }, 25 "getLooperForThread(java.lang.Thread)": { 26 "isImplementation": false, 27 "modifiers": [ 28 "public", 29 "static" 30 ], 31 "params": [ 32 "thread" 33 ], 34 "returnType": "android.os.Looper", 35 "exceptions": [], 36 "name": "getLooperForThread(java.lang.Thread)" 37 }, 38 "getMainLooper()": { 39 "isImplementation": true, 40 "modifiers": [ 41 "protected", 42 "static" 43 ], 44 "params": [], 45 "returnType": "android.os.Looper", 46 "exceptions": [], 47 "name": "getMainLooper()" 48 }, 49 "getScheduler()": { 50 "isImplementation": false, 51 "modifiers": [ 52 "public" 53 ], 54 "params": [], 55 "returnType": "org.robolectric.util.Scheduler", 56 "exceptions": [], 57 "name": "getScheduler()", 58 "documentation": "Returns the {@link org.robolectric.util.Scheduler} that is being used to manage the enqueued tasks.\nThis scheduler is managed by the Looper\u0027s associated queue.\n\n@return the {@link org.robolectric.util.Scheduler} that is being used to manage the enqueued tasks.\n" 59 }, 60 "getShadowMainLooper()": { 61 "isImplementation": false, 62 "modifiers": [ 63 "public", 64 "static" 65 ], 66 "params": [], 67 "returnType": "org.robolectric.shadows.ShadowLooper", 68 "exceptions": [], 69 "name": "getShadowMainLooper()", 70 "documentation": "@deprecated Use `shadowOf({@link Looper#getMainLooper()})` instead. " 71 }, 72 "hasQuit()": { 73 "isImplementation": false, 74 "modifiers": [ 75 "public" 76 ], 77 "params": [], 78 "returnType": "boolean", 79 "exceptions": [], 80 "name": "hasQuit()" 81 }, 82 "idle()": { 83 "isImplementation": false, 84 "modifiers": [ 85 "public" 86 ], 87 "params": [], 88 "returnType": "void", 89 "exceptions": [], 90 "name": "idle()", 91 "documentation": "Causes {@link Runnable}s that have been scheduled to run immediately to actually run. Does not advance the\nscheduler\u0027s clock;\n" 92 }, 93 "idle(long)": { 94 "isImplementation": false, 95 "modifiers": [ 96 "public" 97 ], 98 "params": [ 99 "intervalMillis" 100 ], 101 "returnType": "void", 102 "exceptions": [], 103 "name": "idle(long)", 104 "documentation": "Causes {@link Runnable}s that have been scheduled to run within the next {@code intervalMillis} milliseconds to\nrun while advancing the scheduler\u0027s clock.\n\n@deprecated Use {@link #idle(long, TimeUnit)}.\n" 105 }, 106 "idle(long,java.util.concurrent.TimeUnit)": { 107 "isImplementation": false, 108 "modifiers": [ 109 "public" 110 ], 111 "params": [ 112 "amount", 113 "unit" 114 ], 115 "returnType": "void", 116 "exceptions": [], 117 "name": "idle(long,java.util.concurrent.TimeUnit)", 118 "documentation": "Causes {@link Runnable}s that have been scheduled to run within the next specified amount of time to run while\nadvancing the scheduler\u0027s clock.\n" 119 }, 120 "idleConstantly(boolean)": { 121 "isImplementation": false, 122 "modifiers": [ 123 "public" 124 ], 125 "params": [ 126 "shouldIdleConstantly" 127 ], 128 "returnType": "void", 129 "exceptions": [], 130 "name": "idleConstantly(boolean)" 131 }, 132 "idleMainLooper()": { 133 "isImplementation": false, 134 "modifiers": [ 135 "public", 136 "static" 137 ], 138 "params": [], 139 "returnType": "void", 140 "exceptions": [], 141 "name": "idleMainLooper()" 142 }, 143 "idleMainLooper(long)": { 144 "isImplementation": false, 145 "modifiers": [ 146 "public", 147 "static" 148 ], 149 "params": [ 150 "interval" 151 ], 152 "returnType": "void", 153 "exceptions": [], 154 "name": "idleMainLooper(long)", 155 "documentation": "@deprecated Use {@link #idleMainLooper(long, TimeUnit)}. " 156 }, 157 "idleMainLooper(long,java.util.concurrent.TimeUnit)": { 158 "isImplementation": false, 159 "modifiers": [ 160 "public", 161 "static" 162 ], 163 "params": [ 164 "amount", 165 "unit" 166 ], 167 "returnType": "void", 168 "exceptions": [], 169 "name": "idleMainLooper(long,java.util.concurrent.TimeUnit)" 170 }, 171 "idleMainLooperConstantly(boolean)": { 172 "isImplementation": false, 173 "modifiers": [ 174 "public", 175 "static" 176 ], 177 "params": [ 178 "shouldIdleConstantly" 179 ], 180 "returnType": "void", 181 "exceptions": [], 182 "name": "idleMainLooperConstantly(boolean)" 183 }, 184 "isPaused()": { 185 "isImplementation": false, 186 "modifiers": [ 187 "public" 188 ], 189 "params": [], 190 "returnType": "boolean", 191 "exceptions": [], 192 "name": "isPaused()" 193 }, 194 "loop()": { 195 "isImplementation": true, 196 "modifiers": [ 197 "protected", 198 "static" 199 ], 200 "params": [], 201 "returnType": "void", 202 "exceptions": [], 203 "name": "loop()" 204 }, 205 "myLooper()": { 206 "isImplementation": true, 207 "modifiers": [ 208 "protected", 209 "static" 210 ], 211 "params": [], 212 "returnType": "android.os.Looper", 213 "exceptions": [], 214 "name": "myLooper()" 215 }, 216 "pause()": { 217 "isImplementation": false, 218 "modifiers": [ 219 "public" 220 ], 221 "params": [], 222 "returnType": "void", 223 "exceptions": [], 224 "name": "pause()" 225 }, 226 "pauseLooper(android.os.Looper)": { 227 "isImplementation": false, 228 "modifiers": [ 229 "public", 230 "static" 231 ], 232 "params": [ 233 "looper" 234 ], 235 "returnType": "void", 236 "exceptions": [], 237 "name": "pauseLooper(android.os.Looper)", 238 "documentation": "Pauses execution of tasks posted to the ShadowLooper. This means that during tests, tasks sent\nto the looper will not execute immediately, but will be queued in a way that is similar to how\na real looper works. These queued tasks must be executed explicitly by calling {@link\n#runToEndOftasks} or a similar method, otherwise they will not run at all before your test\nends.\n\n@param looper the looper to pause\n" 239 }, 240 "pauseMainLooper()": { 241 "isImplementation": false, 242 "modifiers": [ 243 "public", 244 "static" 245 ], 246 "params": [], 247 "returnType": "void", 248 "exceptions": [], 249 "name": "pauseMainLooper()", 250 "documentation": "Puts the main ShadowLooper in an \"paused\" state.\n\n@see #pauseLooper\n" 251 }, 252 "post(java.lang.Runnable,long)": { 253 "isImplementation": false, 254 "modifiers": [ 255 "public" 256 ], 257 "params": [ 258 "runnable", 259 "delayMillis" 260 ], 261 "returnType": "boolean", 262 "exceptions": [], 263 "name": "post(java.lang.Runnable,long)", 264 "documentation": "Enqueue a task to be run later.\n\n@param runnable the task to be run\n@param delayMillis how many milliseconds into the (virtual) future to run it\n@return true if the runnable is enqueued\n@see android.os.Handler#postDelayed(Runnable,long)\n@deprecated Use a {@link android.os.Handler} instance to post to a looper.\n" 265 }, 266 "postAtFrontOfQueue(java.lang.Runnable)": { 267 "isImplementation": false, 268 "modifiers": [ 269 "public" 270 ], 271 "params": [ 272 "runnable" 273 ], 274 "returnType": "boolean", 275 "exceptions": [], 276 "name": "postAtFrontOfQueue(java.lang.Runnable)", 277 "documentation": "Enqueue a task to be run ahead of all other delayed tasks.\n\n@param runnable the task to be run\n@return true if the runnable is enqueued\n@see android.os.Handler#postAtFrontOfQueue(Runnable)\n@deprecated Use a {@link android.os.Handler} instance to post to a looper.\n" 278 }, 279 "quit()": { 280 "isImplementation": true, 281 "modifiers": [ 282 "protected" 283 ], 284 "params": [], 285 "returnType": "void", 286 "exceptions": [], 287 "name": "quit()" 288 }, 289 "quitSafely()": { 290 "isImplementation": true, 291 "modifiers": [ 292 "protected" 293 ], 294 "params": [], 295 "returnType": "void", 296 "exceptions": [], 297 "minSdk": 18, 298 "name": "quitSafely()" 299 }, 300 "quitUnchecked()": { 301 "isImplementation": false, 302 "modifiers": [ 303 "public" 304 ], 305 "params": [], 306 "returnType": "void", 307 "exceptions": [], 308 "name": "quitUnchecked()" 309 }, 310 "reset()": { 311 "isImplementation": false, 312 "modifiers": [ 313 "public" 314 ], 315 "params": [], 316 "returnType": "void", 317 "exceptions": [], 318 "name": "reset()", 319 "documentation": "Causes all enqueued tasks to be discarded, and pause state to be reset\n" 320 }, 321 "resetScheduler()": { 322 "isImplementation": false, 323 "modifiers": [ 324 "public" 325 ], 326 "params": [], 327 "returnType": "void", 328 "exceptions": [], 329 "name": "resetScheduler()" 330 }, 331 "resetThreadLoopers()": { 332 "isImplementation": false, 333 "modifiers": [ 334 "public", 335 "static", 336 "synchronized" 337 ], 338 "params": [], 339 "returnType": "void", 340 "exceptions": [], 341 "name": "resetThreadLoopers()" 342 }, 343 "runMainLooperOneTask()": { 344 "isImplementation": false, 345 "modifiers": [ 346 "public", 347 "static" 348 ], 349 "params": [], 350 "returnType": "void", 351 "exceptions": [], 352 "name": "runMainLooperOneTask()" 353 }, 354 "runMainLooperToNextTask()": { 355 "isImplementation": false, 356 "modifiers": [ 357 "public", 358 "static" 359 ], 360 "params": [], 361 "returnType": "void", 362 "exceptions": [], 363 "name": "runMainLooperToNextTask()" 364 }, 365 "runOneTask()": { 366 "isImplementation": false, 367 "modifiers": [ 368 "public" 369 ], 370 "params": [], 371 "returnType": "void", 372 "exceptions": [], 373 "name": "runOneTask()", 374 "documentation": "Causes only one of the next {@link Runnable}s that have been scheduled to run while advancing the scheduler\u0027s\nclock to its start time. Only one {@link Runnable} will run even if more than one has ben scheduled to run at the\nsame time.\n" 375 }, 376 "runPaused(java.lang.Runnable)": { 377 "isImplementation": false, 378 "modifiers": [ 379 "public" 380 ], 381 "params": [ 382 "r" 383 ], 384 "returnType": "void", 385 "exceptions": [], 386 "name": "runPaused(java.lang.Runnable)" 387 }, 388 "runToEndOfTasks()": { 389 "isImplementation": false, 390 "modifiers": [ 391 "public" 392 ], 393 "params": [], 394 "returnType": "void", 395 "exceptions": [], 396 "name": "runToEndOfTasks()", 397 "documentation": "Causes all of the {@link Runnable}s that have been scheduled to run while advancing the scheduler\u0027s clock to the\nstart time of the last scheduled {@link Runnable}.\n" 398 }, 399 "runToNextTask()": { 400 "isImplementation": false, 401 "modifiers": [ 402 "public" 403 ], 404 "params": [], 405 "returnType": "void", 406 "exceptions": [], 407 "name": "runToNextTask()", 408 "documentation": "Causes the next {@link Runnable}(s) that have been scheduled to run while advancing the scheduler\u0027s clock to its\nstart time. If more than one {@link Runnable} is scheduled to run at this time then they will all be run.\n" 409 }, 410 "runUiThreadTasks()": { 411 "isImplementation": false, 412 "modifiers": [ 413 "public", 414 "static" 415 ], 416 "params": [], 417 "returnType": "void", 418 "exceptions": [], 419 "name": "runUiThreadTasks()", 420 "documentation": "Runs any immediately runnable tasks previously queued on the UI thread,\ne.g. by {@link android.app.Activity#runOnUiThread(Runnable)} or {@link android.os.AsyncTask#onPostExecute(Object)}.\n\n**Note:** calling this method does not pause or un-pause the scheduler.\n\n@see #runUiThreadTasksIncludingDelayedTasks\n" 421 }, 422 "runUiThreadTasksIncludingDelayedTasks()": { 423 "isImplementation": false, 424 "modifiers": [ 425 "public", 426 "static" 427 ], 428 "params": [], 429 "returnType": "void", 430 "exceptions": [], 431 "name": "runUiThreadTasksIncludingDelayedTasks()", 432 "documentation": "Runs all runnable tasks (pending and future) that have been queued on the UI thread. Such tasks may be queued by\ne.g. {@link android.app.Activity#runOnUiThread(Runnable)} or {@link android.os.AsyncTask#onPostExecute(Object)}.\n\n**Note:** calling this method does not pause or un-pause the scheduler, however the clock is advanced as\nfuture tasks are run.\n\n@see #runUiThreadTasks\n" 433 }, 434 "setPaused(boolean)": { 435 "isImplementation": false, 436 "modifiers": [ 437 "public" 438 ], 439 "params": [ 440 "shouldPause" 441 ], 442 "returnType": "boolean", 443 "exceptions": [], 444 "name": "setPaused(boolean)" 445 }, 446 "shadowOf(android.os.Looper)": { 447 "isImplementation": false, 448 "modifiers": [ 449 "private", 450 "static" 451 ], 452 "params": [ 453 "looper" 454 ], 455 "returnType": "org.robolectric.shadows.ShadowLooper", 456 "exceptions": [], 457 "name": "shadowOf(android.os.Looper)" 458 }, 459 "shadowOf(android.os.MessageQueue)": { 460 "isImplementation": false, 461 "modifiers": [ 462 "private", 463 "static" 464 ], 465 "params": [ 466 "mq" 467 ], 468 "returnType": "org.robolectric.shadows.ShadowMessageQueue", 469 "exceptions": [], 470 "name": "shadowOf(android.os.MessageQueue)" 471 }, 472 "unPause()": { 473 "isImplementation": false, 474 "modifiers": [ 475 "public" 476 ], 477 "params": [], 478 "returnType": "void", 479 "exceptions": [], 480 "name": "unPause()" 481 }, 482 "unPauseLooper(android.os.Looper)": { 483 "isImplementation": false, 484 "modifiers": [ 485 "public", 486 "static" 487 ], 488 "params": [ 489 "looper" 490 ], 491 "returnType": "void", 492 "exceptions": [], 493 "name": "unPauseLooper(android.os.Looper)", 494 "documentation": "Puts the shadow looper in an \"unpaused\" state (this is the default state). This means that\nduring tests, tasks sent to the looper will execute inline, immediately, on the calling (main)\nthread instead of being queued, in a way similar to how Guava\u0027s \"DirectExecutorService\" works.\nThis is likely not to be what you want: it will cause code to be potentially executed in a\ndifferent order than how it would execute on the device, and if you are using certain Android\nAPIs (such as view animations) that are non-reentrant, they may not work at all or do\nunpredictable things. For more information, see \u003ca\nhref\u003d\"https://github.com/robolectric/robolectric/issues/3369\"\u003ethis discussion\u003c/a\u003e.\n\n@param looper the looper to pause\n" 495 }, 496 "unPauseMainLooper()": { 497 "isImplementation": false, 498 "modifiers": [ 499 "public", 500 "static" 501 ], 502 "params": [], 503 "returnType": "void", 504 "exceptions": [], 505 "name": "unPauseMainLooper()", 506 "documentation": "Puts the main ShadowLooper in an \"unpaused\" state.\n\n@see #unPauseLooper\n" 507 } 508 }, 509 "imports": [ 510 "android.os.Build.VERSION_CODES.JELLY_BEAN_MR2", 511 "org.robolectric.RuntimeEnvironment.isMainThread", 512 "org.robolectric.shadow.api.Shadow.invokeConstructor", 513 "org.robolectric.util.ReflectionHelpers.ClassParameter.from", 514 "android.os.Looper", 515 "android.os.MessageQueue", 516 "java.util.Collections", 517 "java.util.Map", 518 "java.util.WeakHashMap", 519 "java.util.concurrent.TimeUnit", 520 "org.robolectric.RoboSettings", 521 "org.robolectric.RuntimeEnvironment", 522 "org.robolectric.annotation.Implementation", 523 "org.robolectric.annotation.Implements", 524 "org.robolectric.annotation.RealObject", 525 "org.robolectric.annotation.Resetter", 526 "org.robolectric.shadow.api.Shadow", 527 "org.robolectric.util.Scheduler" 528 ], 529 "name": "org.robolectric.shadows.ShadowLooper", 530 "documentation": "Robolectric enqueues posted {@link Runnable}s to be run\n(on this thread) later. {@code Runnable}s that are scheduled to run immediately can be\ntriggered by calling {@link #idle()}.\n\n@see ShadowMessageQueue\n" 531}