{"id":3465,"date":"2013-05-08T18:38:24","date_gmt":"2013-05-08T15:38:24","guid":{"rendered":"http:\/\/examples.javacodegeeks.com\/?p=3465"},"modified":"2019-05-09T11:21:49","modified_gmt":"2019-05-09T08:21:49","slug":"android-timer-example","status":"publish","type":"post","link":"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/","title":{"rendered":"Android Timer Example"},"content":{"rendered":"<p>In this example we are going to create a simple Android Timer application.<\/p>\n<p>We are going to use some very basic ideas and tools, like <a href=\"http:\/\/developer.android.com\/reference\/android\/os\/Handler.html\"><code>Handler<\/code><\/a>, that you can use in many cases in your Applications. We will use the <code>Handler<\/code> for the interesting part of this example, which is the timer value update.<\/p>\n<p>For this tutorial, we will use the following tools in a Windows 64-bit platform:<\/p>\n<ul>\n<li>JDK 1.7<\/li>\n<li>Eclipse 4.2 Juno<\/li>\n<li>Android SKD 4.2<\/li>\n<\/ul>\n<p>&nbsp;\n<\/p>\n<h3>1. Create a new Android Project<\/h3>\n<p>Open Eclipse IDE and go to File -&gt; New -&gt; Project -&gt; Android -&gt; Android Application Project.&nbsp;You have to specify the Application Name, the Project Name and the Package name in the appropriate text fields and then click Next.<\/p>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/create-new-project-attr.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-3467\" alt=\"create-new-project-attr\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/create-new-project-attr.jpg\" width=\"533\" height=\"430\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/create-new-project-attr.jpg 533w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/create-new-project-attr-300x242.jpg 300w\" sizes=\"(max-width: 533px) 100vw, 533px\" \/><\/a><\/p>\n<p>In the next window make sure the \u201cCreate activity\u201d option is selected in order to create a new activity for your project, and click Next. This is optional as you can create a new activity after creating the project, but you can do it all in one step.<\/p>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/check-create-new-activity1.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-3468\" alt=\"check-create-new-activity\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/check-create-new-activity1.jpg\" width=\"534\" height=\"480\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/check-create-new-activity1.jpg 534w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/check-create-new-activity1-300x269.jpg 300w\" sizes=\"(max-width: 534px) 100vw, 534px\" \/><\/a><\/p>\n<p>Select \u201cBlankActivity\u201d and click Next.<\/p>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/create-blanc-activity.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-3469\" alt=\"create-blanc-activity\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/create-blanc-activity.jpg\" width=\"528\" height=\"502\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/create-blanc-activity.jpg 528w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/create-blanc-activity-300x285.jpg 300w\" sizes=\"(max-width: 528px) 100vw, 528px\" \/><\/a><\/p>\n<p>You will be asked to specify some information about the new activity. &nbsp;In the Layout Name text field you have to specify the name of the file that will contain the layout description of your app. In our case the file&nbsp;<code>res\/layout\/main.xml<\/code>&nbsp;will be created. Then, click Finish.<\/p>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/new-activity-attr.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-3470\" alt=\"new-activity-attr\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/new-activity-attr.jpg\" width=\"484\" height=\"455\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/new-activity-attr.jpg 484w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/new-activity-attr-300x282.jpg 300w\" sizes=\"(max-width: 484px) 100vw, 484px\" \/><\/a><\/p>\n<h3>2. Adding resources<\/h3>\n<p>Use the Package Explorer in Eclipse to navigate to&nbsp;<code>res\/values\/strings.xml<\/code><\/p>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/strings-xml.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-3471\" alt=\"strings-xml\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/strings-xml.jpg\" width=\"283\" height=\"503\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/strings-xml.jpg 283w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/strings-xml-168x300.jpg 168w\" sizes=\"(max-width: 283px) 100vw, 283px\" \/><\/a><\/p>\n<p>When you open the<code>&nbsp;strings.xml<\/code>&nbsp;file, Eclipse will display the graphical Resources View editor :<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p><a href=\"http:\/\/cdn.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/resources-view.jpg\"><img decoding=\"async\" title=\"resources-view\" alt=\"\" src=\"http:\/\/cdn.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/resources-view.jpg\" width=\"531\" height=\"419\"><\/a><\/p>\n<p>That\u2019s a nice and easy tool you can use to add several resources to your application&nbsp;like strings, integers, color values etc. But we are going to use the traditional way and that is editing the&nbsp;<code>strings.xml&nbsp;<\/code>file by hand. In the bottom of the screen, press the&nbsp;<code>string.xml&nbsp;<\/code>tab and paste the following code :<\/p>\n<pre class=\"brush:xml\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;resources&gt;\n\n    &lt;string name=\"app_name\"&gt;AndroidTimerExample&lt;\/string&gt;\n    &lt;string name=\"action_settings\"&gt;Settings&lt;\/string&gt;\n    &lt;string name=\"hello_world\"&gt;Hello world!&lt;\/string&gt;\n    &lt;string name=\"timerVal\"&gt;00:00:00&lt;\/string&gt;\n    &lt;string name=\"pauseButtonLabel\"&gt;Pause&lt;\/string&gt;\n    &lt;string name=\"startButtonLabel\"&gt;Start&lt;\/string&gt;\n&lt;\/resources&gt;<\/pre>\n<p>So, we\u2019ve just created some string resources that we can use in many ways and in many places in our app.<\/p>\n<h3>3. Create the main layout of the Application<\/h3>\n<p>Open&nbsp;<code>res\/layout\/main.xml<\/code>&nbsp;file :<\/p>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/main-xml.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-3472\" alt=\"main-xml\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/main-xml.jpg\" width=\"370\" height=\"429\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/main-xml.jpg 370w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/main-xml-258x300.jpg 258w\" sizes=\"(max-width: 370px) 100vw, 370px\" \/><\/a><\/p>\n<p>And paste the following code :<\/p>\n<pre class=\"brush:xml\">&lt;RelativeLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\n    android:layout_width=\"match_parent\"\n    android:background=\"#000000\"\n    android:layout_height=\"match_parent\" &gt;\n\n    &lt;TextView\n        android:id=\"@+id\/timerValue\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_above=\"@+id\/pauseButton\"\n        android:layout_centerHorizontal=\"true\"\n        android:layout_marginBottom=\"37dp\"\n        android:textSize=\"40sp\"\n        android:textColor=\"#ffffff\"\n        android:text=\"@string\/timerVal\" \/&gt;\n\n    &lt;Button\n        android:id=\"@+id\/startButton\"\n        android:layout_width=\"90dp\"\n        android:layout_height=\"45dp\"\n        android:layout_alignParentLeft=\"true\"\n        android:layout_centerVertical=\"true\"\n        android:layout_marginLeft=\"38dp\"\n        android:text=\"@string\/startButtonLabel\" \/&gt;\n\n    &lt;Button\n        android:id=\"@+id\/pauseButton\"\n        android:layout_width=\"90dp\"\n        android:layout_height=\"45dp\"\n        android:layout_alignBaseline=\"@+id\/startButton\"\n        android:layout_alignBottom=\"@+id\/startButton\"\n        android:layout_alignParentRight=\"true\"\n        android:layout_marginRight=\"38dp\"\n        android:text=\"@string\/pauseButtonLabel\" \/&gt;\n\n&lt;\/RelativeLayout&gt;<\/pre>\n<p>Now you may open the Graphical layout editor to preview the User Interface you created:<\/p>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/graphical-layout-preview.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-3473\" alt=\"graphical-layout-preview\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/graphical-layout-preview.jpg\" width=\"565\" height=\"615\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/graphical-layout-preview.jpg 565w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/graphical-layout-preview-275x300.jpg 275w\" sizes=\"(max-width: 565px) 100vw, 565px\" \/><\/a>[ulp id=&#8217;XSQzgZ7lDbTb31Tj&#8217;]<\/p>\n<h3>4. Code<\/h3>\n<p>Now we have to write the code of the application. Use the Package Explorer to navigate to the Java file of the Activity you&#8217;ve created:<\/p>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/main-src-file.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-3482\" alt=\"main-src-file\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/main-src-file.jpg\" width=\"407\" height=\"279\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/main-src-file.jpg 407w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/main-src-file-300x205.jpg 300w\" sizes=\"(max-width: 407px) 100vw, 407px\" \/><\/a><\/p>\n<p>The code of this tutorial is pretty much self&nbsp;explanatory. The interesting part is how to update the value of the timer. We are going to use a <a href=\"http:\/\/developer.android.com\/reference\/android\/os\/Handler.html\"><code>Handler<\/code><\/a> for that. The Handler takes a <a href=\"http:\/\/docs.oracle.com\/javase\/7\/docs\/api\/java\/lang\/Runnable.html\">Runnable<\/a> object and it schedules its execution; it places the runnable process as a job in an execution queue&nbsp;to be run after a specified amount of time. The runnable will be run on the thread to which this handler is attached.<\/p>\n<pre class=\"brush:java\">package com.javacodegeeks.android.androidtimerexample;\n\nimport android.app.Activity;\nimport android.os.Bundle;\nimport android.os.Handler;\nimport android.os.SystemClock;\nimport android.view.View;\nimport android.widget.Button;\nimport android.widget.TextView;\n\npublic class MainActivity extends Activity {\n\n\tprivate Button startButton;\n\tprivate Button pauseButton;\n\n\tprivate TextView timerValue;\n\n\tprivate long startTime = 0L;\n\n\tprivate Handler customHandler = new Handler();\n\n\tlong timeInMilliseconds = 0L;\n\tlong timeSwapBuff = 0L;\n\tlong updatedTime = 0L;\n\n\t@Override\n\tpublic void onCreate(Bundle savedInstanceState) {\n\t\tsuper.onCreate(savedInstanceState);\n\t\tsetContentView(R.layout.main);\n\n\t\ttimerValue = (TextView) findViewById(R.id.timerValue);\n\n\t\tstartButton = (Button) findViewById(R.id.startButton);\n\n\t\tstartButton.setOnClickListener(new View.OnClickListener() {\n\n\t\t\tpublic void onClick(View view) {\n\t\t\t\tstartTime = SystemClock.uptimeMillis();\n\t\t\t\tcustomHandler.postDelayed(updateTimerThread, 0);\n\n\t\t\t}\n\t\t});\n\n\t\tpauseButton = (Button) findViewById(R.id.pauseButton);\n\n\t\tpauseButton.setOnClickListener(new View.OnClickListener() {\n\n\t\t\tpublic void onClick(View view) {\n\n\t\t\t\ttimeSwapBuff += timeInMilliseconds;\n\t\t\t\tcustomHandler.removeCallbacks(updateTimerThread);\n\n\t\t\t}\n\t\t});\n\n\t}\n\n\tprivate Runnable updateTimerThread = new Runnable() {\n\n\t\tpublic void run() {\n\n\t\t\ttimeInMilliseconds = SystemClock.uptimeMillis() - startTime;\n\n\t\t\tupdatedTime = timeSwapBuff + timeInMilliseconds;\n\n\t\t\tint secs = (int) (updatedTime \/ 1000);\n\t\t\tint mins = secs \/ 60;\n\t\t\tsecs = secs % 60;\n\t\t\tint milliseconds = (int) (updatedTime % 1000);\n\t\t\ttimerValue.setText(\"\" + mins + \":\"\n\t\t\t\t\t+ String.format(\"%02d\", secs) + \":\"\n\t\t\t\t\t+ String.format(\"%03d\", milliseconds));\n\t\t\tcustomHandler.postDelayed(this, 0);\n\t\t}\n\n\t};\n\n}<\/pre>\n<h3>5. Run the application<\/h3>\n<p>This is the main screen of our Application. Remember that the layout of the main screen is described by <code>main.xml<\/code>:<\/p>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/main-screen.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-3474\" alt=\"main-screen\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/main-screen.jpg\" width=\"256\" height=\"470\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/main-screen.jpg 256w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/main-screen-163x300.jpg 163w\" sizes=\"(max-width: 256px) 100vw, 256px\" \/><\/a><\/p>\n<p>Now, when you press the &#8220;Start&#8221; button, the timer will be launched and its value will be updated:<\/p>\n<p><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/timer-running.jpg\"><img decoding=\"async\" class=\"alignnone size-full wp-image-3475\" alt=\"timer-running\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/timer-running.jpg\" width=\"256\" height=\"470\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/timer-running.jpg 256w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/timer-running-163x300.jpg 163w\" sizes=\"(max-width: 256px) 100vw, 256px\" \/><\/a><\/p>\n<p>Now, if you press &#8220;Pause&#8221;, the timer will freeze to its current value.<\/p>\n<h3>Download Eclipse Project<\/h3>\n<p>This was an Android Timer Example. Download the Eclipse Project of this tutorial:&nbsp;<a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/05\/AndroidTimerExample.zip\">AndroidTimerExample.zip<\/a><a href=\"http:\/\/cdn.javacodegeeks.com\/wp-content\/uploads\/2013\/01\/AndroidCustomDialogExample.zip\"><br \/>\n<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this example we are going to create a simple Android Timer application. We are going to use some very basic ideas and tools, like Handler, that you can use in many cases in your Applications. We will use the Handler for the interesting part of this example, which is the timer value update. For &hellip;<\/p>\n","protected":false},"author":4,"featured_media":1202,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[432,433],"tags":[],"class_list":["post-3465","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-handler","category-systemclock"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Android Timer Example<\/title>\n<meta name=\"description\" content=\"In this example we are going to create a simple Android Timer application. We are going to use some very basic ideas and tools, like Handler, that you can\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android Timer Example\" \/>\n<meta property=\"og:description\" content=\"In this example we are going to create a simple Android Timer application. We are going to use some very basic ideas and tools, like Handler, that you can\" \/>\n<meta property=\"og:url\" content=\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/\" \/>\n<meta property=\"og:site_name\" content=\"Examples Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2013-05-08T15:38:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-05-09T08:21:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/android-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Nikos Maravitsas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nikos Maravitsas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/\"},\"author\":{\"name\":\"Nikos Maravitsas\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/686a494fbb577a8d1231862b139cda6b\"},\"headline\":\"Android Timer Example\",\"datePublished\":\"2013-05-08T15:38:24+00:00\",\"dateModified\":\"2019-05-09T08:21:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/\"},\"wordCount\":546,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/android-logo.jpg\",\"articleSection\":[\"Handler\",\"SystemClock\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/\",\"name\":\"Android Timer Example\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/android-logo.jpg\",\"datePublished\":\"2013-05-08T15:38:24+00:00\",\"dateModified\":\"2019-05-09T08:21:49+00:00\",\"description\":\"In this example we are going to create a simple Android Timer application. We are going to use some very basic ideas and tools, like Handler, that you can\",\"breadcrumb\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#primaryimage\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/android-logo.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/android-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/examples.javacodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/android\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"core\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/android\/core\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"os\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/android\/core\/os\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Handler\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/android\/core\/os\/handler\/\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"Android Timer Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Examples and Code Snippets\",\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/javacodegeeks\",\"https:\/\/x.com\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/686a494fbb577a8d1231862b139cda6b\",\"name\":\"Nikos Maravitsas\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/10\/Nikos-Maravitsas-80x96.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/10\/Nikos-Maravitsas-80x96.jpg\",\"caption\":\"Nikos Maravitsas\"},\"description\":\"Nikos has graduated from the Department of Informatics and Telecommunications of The National and Kapodistrian University of Athens. During his studies he discovered his interests about software development and he has successfully completed numerous assignments in a variety of fields. Currently, his main interests are system\u2019s security, parallel systems, artificial intelligence, operating systems, system programming, telecommunications, web applications, human \u2013 machine interaction and mobile development.\",\"sameAs\":[\"http:\/\/www.javacodegeeks.com\/\"],\"url\":\"https:\/\/examples.javacodegeeks.com\/author\/nikos-maravitsas\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android Timer Example","description":"In this example we are going to create a simple Android Timer application. We are going to use some very basic ideas and tools, like Handler, that you can","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:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/","og_locale":"en_US","og_type":"article","og_title":"Android Timer Example","og_description":"In this example we are going to create a simple Android Timer application. We are going to use some very basic ideas and tools, like Handler, that you can","og_url":"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/","og_site_name":"Examples Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2013-05-08T15:38:24+00:00","article_modified_time":"2019-05-09T08:21:49+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/android-logo.jpg","type":"image\/jpeg"}],"author":"Nikos Maravitsas","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Nikos Maravitsas","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#article","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/"},"author":{"name":"Nikos Maravitsas","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/686a494fbb577a8d1231862b139cda6b"},"headline":"Android Timer Example","datePublished":"2013-05-08T15:38:24+00:00","dateModified":"2019-05-09T08:21:49+00:00","mainEntityOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/"},"wordCount":546,"commentCount":1,"publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/android-logo.jpg","articleSection":["Handler","SystemClock"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/","url":"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/","name":"Android Timer Example","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#primaryimage"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/android-logo.jpg","datePublished":"2013-05-08T15:38:24+00:00","dateModified":"2019-05-09T08:21:49+00:00","description":"In this example we are going to create a simple Android Timer application. We are going to use some very basic ideas and tools, like Handler, that you can","breadcrumb":{"@id":"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#primaryimage","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/android-logo.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2012\/12\/android-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/examples.javacodegeeks.com\/android\/core\/os\/handler\/android-timer-example\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/examples.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Android","item":"https:\/\/examples.javacodegeeks.com\/category\/android\/"},{"@type":"ListItem","position":3,"name":"core","item":"https:\/\/examples.javacodegeeks.com\/category\/android\/core\/"},{"@type":"ListItem","position":4,"name":"os","item":"https:\/\/examples.javacodegeeks.com\/category\/android\/core\/os\/"},{"@type":"ListItem","position":5,"name":"Handler","item":"https:\/\/examples.javacodegeeks.com\/category\/android\/core\/os\/handler\/"},{"@type":"ListItem","position":6,"name":"Android Timer Example"}]},{"@type":"WebSite","@id":"https:\/\/examples.javacodegeeks.com\/#website","url":"https:\/\/examples.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Examples and Code Snippets","publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/examples.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/examples.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/686a494fbb577a8d1231862b139cda6b","name":"Nikos Maravitsas","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/10\/Nikos-Maravitsas-80x96.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2013\/10\/Nikos-Maravitsas-80x96.jpg","caption":"Nikos Maravitsas"},"description":"Nikos has graduated from the Department of Informatics and Telecommunications of The National and Kapodistrian University of Athens. During his studies he discovered his interests about software development and he has successfully completed numerous assignments in a variety of fields. Currently, his main interests are system\u2019s security, parallel systems, artificial intelligence, operating systems, system programming, telecommunications, web applications, human \u2013 machine interaction and mobile development.","sameAs":["http:\/\/www.javacodegeeks.com\/"],"url":"https:\/\/examples.javacodegeeks.com\/author\/nikos-maravitsas\/"}]}},"_links":{"self":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/3465","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=3465"}],"version-history":[{"count":0,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/3465\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media\/1202"}],"wp:attachment":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=3465"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=3465"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=3465"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}