{"id":19053,"date":"2024-03-15T18:07:49","date_gmt":"2024-03-15T18:07:49","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/"},"modified":"2024-03-21T14:46:53","modified_gmt":"2024-03-21T14:46:53","slug":"how-do-you-use-looper-prepare-and-looper-loop","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/","title":{"rendered":"How do you use Looper.prepare() and Looper.loop()?"},"content":{"rendered":"<p>The Looper.prepare() method is used to initialize the Looper object for the current thread, and should be called before using a Handler or MessageQueue for the current thread.<\/p>\n<p>The core method of the Looper class is Looper.loop(), which initiates an infinite loop that continuously retrieves messages from the MessageQueue of the current thread for processing. This method will block the current thread until Looper.quit() is called to stop the loop.<\/p>\n<p>Here is a simple example demonstrating how to use the Looper.prepare() and Looper.loop() methods.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">MyThread<\/span> <span class=\"hljs-keyword\">extends<\/span> <span class=\"hljs-title class_\">Thread<\/span> {\r\n    <span class=\"hljs-keyword\">public<\/span> Handler mHandler;\r\n\r\n    <span class=\"hljs-meta\">@Override<\/span>\r\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">run<\/span><span class=\"hljs-params\">()<\/span> {\r\n        <span class=\"hljs-comment\">\/\/ \u521d\u59cb\u5316 Looper<\/span>\r\n        Looper.prepare();\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u521b\u5efa Handler<\/span>\r\n        mHandler = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Handler<\/span>() {\r\n            <span class=\"hljs-meta\">@Override<\/span>\r\n            <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title function_\">handleMessage<\/span><span class=\"hljs-params\">(Message msg)<\/span> {\r\n                <span class=\"hljs-comment\">\/\/ \u5904\u7406\u6d88\u606f<\/span>\r\n                <span class=\"hljs-comment\">\/\/ ...<\/span>\r\n            }\r\n        };\r\n\r\n        <span class=\"hljs-comment\">\/\/ \u542f\u52a8\u5faa\u73af<\/span>\r\n        Looper.loop();\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>In the example above, we created a thread class MyThread, called Looper.prepare() in the run() method to initialize the Looper object, and created a Handler object. Then we called Looper.loop() to start the loop.<\/p>\n<p>In a loop, messages can be sent by calling mHandler.sendMessage() and then handled in the handleMessage() method.<\/p>\n<p>It is important to note that the Looper.loop() method will continuously block the current thread, so make sure to call the Looper.quit() method at the appropriate time to stop the loop, otherwise it may cause issues with the thread being unable to exit.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Looper.prepare() method is used to initialize the Looper object for the current thread, and should be called before using a Handler or MessageQueue for the current thread. The core method of the Looper class is Looper.loop(), which initiates an infinite loop that continuously retrieves messages from the MessageQueue of the current thread for processing. [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-19053","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How do you use Looper.prepare() and Looper.loop()? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How do you use Looper.prepare() and Looper.loop()?\" \/>\n<meta property=\"og:description\" content=\"The Looper.prepare() method is used to initialize the Looper object for the current thread, and should be called before using a Handler or MessageQueue for the current thread. The core method of the Looper class is Looper.loop(), which initiates an infinite loop that continuously retrieves messages from the MessageQueue of the current thread for processing. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T18:07:49+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T14:46:53+00:00\" \/>\n<meta name=\"author\" content=\"Olivia Parker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Olivia Parker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/\"},\"author\":{\"name\":\"Olivia Parker\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\"},\"headline\":\"How do you use Looper.prepare() and Looper.loop()?\",\"datePublished\":\"2024-03-15T18:07:49+00:00\",\"dateModified\":\"2024-03-21T14:46:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/\"},\"wordCount\":197,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/\",\"name\":\"How do you use Looper.prepare() and Looper.loop()? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T18:07:49+00:00\",\"dateModified\":\"2024-03-21T14:46:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How do you use Looper.prepare() and Looper.loop()?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9\",\"name\":\"Olivia Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g\",\"caption\":\"Olivia Parker\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How do you use Looper.prepare() and Looper.loop()? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/","og_locale":"en_US","og_type":"article","og_title":"How do you use Looper.prepare() and Looper.loop()?","og_description":"The Looper.prepare() method is used to initialize the Looper object for the current thread, and should be called before using a Handler or MessageQueue for the current thread. The core method of the Looper class is Looper.loop(), which initiates an infinite loop that continuously retrieves messages from the MessageQueue of the current thread for processing. [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T18:07:49+00:00","article_modified_time":"2024-03-21T14:46:53+00:00","author":"Olivia Parker","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Olivia Parker","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/"},"author":{"name":"Olivia Parker","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9"},"headline":"How do you use Looper.prepare() and Looper.loop()?","datePublished":"2024-03-15T18:07:49+00:00","dateModified":"2024-03-21T14:46:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/"},"wordCount":197,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/","url":"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/","name":"How do you use Looper.prepare() and Looper.loop()? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T18:07:49+00:00","dateModified":"2024-03-21T14:46:53+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-do-you-use-looper-prepare-and-looper-loop\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How do you use Looper.prepare() and Looper.loop()?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/3ff7b3da0e45ac5dbbef2502f3cea8d9","name":"Olivia Parker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/56c66f189ba32a6f9eb50f31a38fe774e2a725c213d4070835ccc51b8fbbc54b?s=96&d=mm&r=g","caption":"Olivia Parker"},"url":"https:\/\/www.silicloud.com\/blog\/author\/oliviaparker\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19053","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=19053"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19053\/revisions"}],"predecessor-version":[{"id":52773,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/19053\/revisions\/52773"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=19053"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=19053"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=19053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}