{"id":1406,"date":"2012-04-20T07:35:59","date_gmt":"2012-04-19T23:35:59","guid":{"rendered":"http:\/\/leybreeze.com\/blog\/?p=1406"},"modified":"2012-04-20T07:35:59","modified_gmt":"2012-04-19T23:35:59","slug":"android%e4%b8%ad%e4%bd%bf%e7%94%a8%e5%8f%af%e4%bb%a5%e6%8e%a7%e5%88%b6%e7%8a%b6%e6%80%81%ef%bc%88%e5%bc%80%e5%a7%8b%e3%80%81%e6%9a%82%e5%81%9c%e3%80%81%e5%81%9c%e6%ad%a2%ef%bc%89%e7%9a%84-progressbar","status":"publish","type":"post","link":"http:\/\/leybreeze.com\/blog\/?p=1406","title":{"rendered":"Android\u4e2d\u4f7f\u7528\u53ef\u4ee5\u63a7\u5236\u72b6\u6001\uff08\u5f00\u59cb\u3001\u6682\u505c\u3001\u505c\u6b62\uff09\u7684 ProgressBar"},"content":{"rendered":"<p>\u4ee3\u7801\u4e0e\u8303\u4f8b\uff1a<\/p>\n<pre lang=\"JAVA\">\/\/ \u901a\u8fc7\u7c7b ProgressBarUpdater \u6765\u63a7\u5236\u7ebf\u7a0b\u7684\u8fd0\u884c\u72b6\u6001\r\npublic class ProgressBarUpdater implements Runnable {\r\n\tprivate volatile boolean paused = true;\r\n\tprivate volatile boolean finished = false;\r\n\r\n\tpublic void run() {\r\n\t\twhile (!finished) {\r\n\t\t\t\/\/ wait\r\n\t\t\ttry {\r\n\t\t\t\tThread.sleep(500);\r\n\t\t\t} catch (InterruptedException e1) {\r\n\t\t\t}\r\n\t\t\tif (!paused) {\r\n\t\t\t\/\/ Update the progress status\r\n\t\t\tProgressStatus = doWork();\r\n\t\t\tprogressBar.setProgress(ProgressStatus);\r\n\t\t\t}\r\n\t\t\t\twhile (paused &amp;&amp; !finished) {\r\n\t\t\t\t\/\/ wait\r\n\t\t\t\ttry {\r\n\t\t\t\t\tThread.sleep(500);\r\n\t\t\t\t} catch (InterruptedException e) {\r\n\t\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tpublic synchronized void pauseProgressBar() {\r\n\t\tpaused = true;\r\n\t}\r\n\r\n\tpublic synchronized void unPauseProgressBar() {\r\n\t\tpaused = false;\r\n\t\t\/\/ call notify() here when you switch to wait\/notify.\r\n\t}\r\n\r\n\tpublic void stopProgressBar() {\r\n\t\tfinished = true;\r\n\t\t\/\/ call notify() here too.\r\n\t}\r\n}\r\n\r\n@Override\r\npublic void onCreate(Bundle savedInstanceState) {\r\n\tsuper.onCreate(savedInstanceState);\r\n\tsetContentView(R.layout.main);\r\n\tsetTitle(getResources().getString(R.string.number));\r\n\r\n\tProgressStatus = 0;\r\n\tButton1 = (Button) this.findViewById(R.id.button1);\r\n\tButton1.setOnClickListener(this);\r\n\tButton2 = (Button) this.findViewById(R.id.button2);\r\n\tButton2.setOnClickListener(this);\r\n\tprogressBar = (ProgressBar) findViewById(R.id.progressBar1);\r\n\tprogressBar.setMax(100);\r\n\tprogressBar.setProgress(0);\r\n\t\/\/ progressBar.setSecondaryProgress(70);\r\n\r\n\t\/\/ \u4f7f\u7528 ProgressBarUpdater \u6765\u6784\u9020\u65b0\u7684\u7ebf\u7a0b\r\n\tProgressBarUpdater pbu = new ProgressBarUpdater();\r\n\tThread t = new Thread(pbu);\r\n\tt.start();\r\n\tpbu.pauseProgressBar();\r\n}\r\n\r\n\/\/ \u901a\u8fc7 ProgressBarUpdater \u6765\u63a7\u5236\u8fdb\u5ea6\u6761\u7684\u8fd0\u884c\u72b6\u6001\r\n@Override\r\npublic void onClick(View v) {\r\n\tif (v.getId() == R.id.button1) {\r\n\t\tpbu.unPauseProgressBar();\r\n\t}\r\n\tif (v.getId() == R.id.button2) {\r\n\t\tpbu.pauseProgressBar();\r\n\t}\r\n}<\/pre>\n<p>\u8bf4\u660e\uff1a\u53ef\u4ee5\u901a\u8fc7\u4e00\u4e2a\u8f85\u52a9\u7c7b\u6765\u65b9\u4fbf\u5730\u6539\u53d8\u63a7\u5236 ProgressBar \u7684\u7ebf\u7a0b\u7684\u8fd0\u884c\u72b6\u6001\u3002\u4e00\u4e2a\u53ef\u4ee5\u6682\u505c\u4e0e\u4e2d\u65ad\u7684\u8fdb\u5ea6\u6761\u5728\u6709\u4e9b\u60c5\u51b5\u4e0b\u662f\u5f88\u5fc5\u8981\u7684\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4ee3\u7801\u4e0e\u8303\u4f8b\uff1a \/\/ \u901a\u8fc7\u7c7b ProgressBarUpdater \u6765\u63a7\u5236\u7ebf\u7a0b\u7684\u8fd0\u884c\u72b6\u6001 public clas &hellip; <a href=\"http:\/\/leybreeze.com\/blog\/?p=1406\" class=\"more-link\">\u7ee7\u7eed\u9605\u8bfb<span class=\"screen-reader-text\">\u201cAndroid\u4e2d\u4f7f\u7528\u53ef\u4ee5\u63a7\u5236\u72b6\u6001\uff08\u5f00\u59cb\u3001\u6682\u505c\u3001\u505c\u6b62\uff09\u7684 ProgressBar\u201d<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[5,101,17],"_links":{"self":[{"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1406"}],"collection":[{"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1406"}],"version-history":[{"count":1,"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1406\/revisions"}],"predecessor-version":[{"id":1407,"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1406\/revisions\/1407"}],"wp:attachment":[{"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1406"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/leybreeze.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}