﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-Android学习笔记</title><link>http://www.blogjava.net/andteamroid/</link><description>我的Android之路</description><language>zh-cn</language><lastBuildDate>Tue, 12 May 2026 21:35:52 GMT</lastBuildDate><pubDate>Tue, 12 May 2026 21:35:52 GMT</pubDate><ttl>60</ttl><item><title>在textview中显示logcat日志</title><link>http://www.blogjava.net/andteamroid/archive/2011/03/09/346020.html</link><dc:creator>andteamroid</dc:creator><author>andteamroid</author><pubDate>Wed, 09 Mar 2011 05:44:00 GMT</pubDate><guid>http://www.blogjava.net/andteamroid/archive/2011/03/09/346020.html</guid><wfw:comment>http://www.blogjava.net/andteamroid/comments/346020.html</wfw:comment><comments>http://www.blogjava.net/andteamroid/archive/2011/03/09/346020.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/andteamroid/comments/commentRss/346020.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andteamroid/services/trackbacks/346020.html</trackback:ping><description><![CDATA[我们在Eclipse中经常使用Logcat窗口查看日志信息，不过其实也可以在手机上显示日志。下面的例子就是在textview中显示logcat日志。<br />
java代码如下：
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #0000FF; ">package</span><span style="color: #000000; ">&nbsp;LogcatTextView.com;<br />
</span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.io.BufferedReader;<br />
</span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.io.IOException;<br />
</span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;java.io.InputStreamReader;<br />
</span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.app.Activity;<br />
</span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.os.Bundle;<br />
</span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.widget.ScrollView;<br />
</span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #0000FF; ">import</span><span style="color: #000000; ">&nbsp;android.widget.TextView;<br />
</span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;LogcatTextView&nbsp;</span><span style="color: #0000FF; ">extends</span><span style="color: #000000; ">&nbsp;Activity&nbsp;{<br />
</span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; ">/**</span><span style="color: #008000; ">&nbsp;Called&nbsp;when&nbsp;the&nbsp;activity&nbsp;is&nbsp;first&nbsp;created.&nbsp;</span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />
</span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
</span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;onCreate(Bundle&nbsp;savedInstanceState)&nbsp;{<br />
</span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">super</span><span style="color: #000000; ">.onCreate(savedInstanceState);<br />
</span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.main);<br />
</span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">try</span><span style="color: #000000; ">&nbsp;{<br />
</span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process&nbsp;process&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;Runtime.getRuntime().exec(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">logcat&nbsp;-d</span><span style="color: #000000; ">"</span><span style="color: #000000; ">);<br />
</span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">24</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedReader&nbsp;bufferedReader&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;BufferedReader(<br />
</span><span style="color: #008080; ">25</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">26</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;InputStreamReader(process.getInputStream()));<br />
</span><span style="color: #008080; ">27</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">28</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder&nbsp;log&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;StringBuilder();<br />
</span><span style="color: #008080; ">29</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">30</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;line;<br />
</span><span style="color: #008080; ">31</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">32</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">&nbsp;((line&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;bufferedReader.readLine())&nbsp;</span><span style="color: #000000; ">!=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">)&nbsp;{<br />
</span><span style="color: #008080; ">33</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">34</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log.append(line);<br />
</span><span style="color: #008080; ">35</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">36</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080; ">37</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">38</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TextView&nbsp;tv&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(TextView)&nbsp;findViewById(R.id.tvLogcat);<br />
</span><span style="color: #008080; ">39</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">40</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tv.setText(log.toString());<br />
</span><span style="color: #008080; ">41</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">42</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">final</span><span style="color: #000000; ">&nbsp;ScrollView&nbsp;scrollView&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;(ScrollView)&nbsp;findViewById(R.id.scrlLogcat);<br />
</span><span style="color: #008080; ">43</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">44</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scrollView.post(</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;Runnable()&nbsp;{<br />
</span><span style="color: #008080; ">45</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br />
</span><span style="color: #008080; ">46</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;run()&nbsp;{<br />
</span><span style="color: #008080; ">47</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scrollView.fullScroll(ScrollView.FOCUS_DOWN);<br />
</span><span style="color: #008080; ">48</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080; ">49</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});<br />
</span><span style="color: #008080; ">50</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">51</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000FF; ">catch</span><span style="color: #000000; ">&nbsp;(IOException&nbsp;e)&nbsp;{<br />
</span><span style="color: #008080; ">52</span>&nbsp;<span style="color: #000000; "><br />
</span><span style="color: #008080; ">53</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080; ">54</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080; ">55</span>&nbsp;<span style="color: #000000; ">}</span></div>
</div>
<div style="border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; font-size: 13px; background-color: #eeeeee; ">不要忘记加上权限</div>
<div style="border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; font-size: 13px; background-color: #eeeeee; "><span style="font-family: monospace; "><span class="sy0">&lt;</span>uses<span class="sy0">-</span>permission android<span class="sy0">:</span>name<span class="sy0">=</span><span class="st0">"android.permission.READ_LOGS"</span> <span class="sy0">/&gt;<br />
</span></span></div>
<img src ="http://www.blogjava.net/andteamroid/aggbug/346020.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andteamroid/" target="_blank">andteamroid</a> 2011-03-09 13:44 <a href="http://www.blogjava.net/andteamroid/archive/2011/03/09/346020.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何中断Android线程</title><link>http://www.blogjava.net/andteamroid/archive/2011/03/09/346018.html</link><dc:creator>andteamroid</dc:creator><author>andteamroid</author><pubDate>Wed, 09 Mar 2011 04:53:00 GMT</pubDate><guid>http://www.blogjava.net/andteamroid/archive/2011/03/09/346018.html</guid><wfw:comment>http://www.blogjava.net/andteamroid/comments/346018.html</wfw:comment><comments>http://www.blogjava.net/andteamroid/archive/2011/03/09/346018.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andteamroid/comments/commentRss/346018.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andteamroid/services/trackbacks/346018.html</trackback:ping><description><![CDATA[<p class="p0" style="margin-bottom:0pt; margin-top:0pt; "><span style="font-family: 宋体; font-size: 14px; ">&nbsp;&nbsp; &nbsp;当你在后台使用</span><span style="font-family: 宋体; font-size: 14px; "><font face="Times New Roman">Thread</font></span><span style="font-family: 宋体; font-size: 14px; "><font face="宋体">或者</font></span><span style="font-family: 宋体; font-size: 14px; "><font face="Times New Roman">AsyncTask</font></span><span style="font-family: 宋体; font-size: 14px; "><font face="宋体">来处理一些耗时的操作时，可能想要对这些线程加以控制，其中包括中断线程。</font></span></p>
<p class="p0" style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">&nbsp;&nbsp; &nbsp;很多情况下，当用户启动程序的时候，一个后台运行的线程会同时启动去加载内容。但是，当用户离开程序时，线程应该被打断，因为现在用户已经不再关注程序了，同时也不再关注线程处理的结果，而线程是要占用系统的资源的，如果不及时中断线程，会导致系统资源的浪费。</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; "><o:p></o:p></span></p>
<p class="p0" style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">&nbsp;&nbsp; &nbsp;可是怎么去中断一个线程呢？从文档中可以看到<font face="Times New Roman">Thread</font><font face="宋体">类有</font><font face="Times New Roman">stop()</font><font face="宋体">方法，这个方法提供一个&#8220;简单&#8221;的方法去中断线程。不过这种野蛮的中断方式会导致一些问题，而且现在这个方法已经不推荐使用了。</font></span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; "><o:p></o:p></span></p>
<p class="p0" style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">&nbsp;&nbsp; &nbsp;除此之外，你可以使用<font face="Times New Roman">Thread.interrupt()</font><font face="宋体">或者</font><font face="Times New Roman">AsyncTask.cancel()</font><font face="宋体">方法，但是这不会马上中断线程，因此，只能在自己的线程中实现中断并退出。</font></span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; "><o:p></o:p></span></p>
<p class="p0" style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">&nbsp;&nbsp; &nbsp;在许多情况下，后台运行的线程都有一个主循环，因此你可以在循环中判断线程是否被中断，若被中断，则退出循环，从而结束进程。例如一个线程下载线程，可以通过<font face="Times New Roman">isInterrupted()</font><font face="宋体">方法判断当前线程是否被中断。</font></span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; "><o:p></o:p></span></p>
<p class="p0" style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><font face="monospace"><span style="font-size: 14px;">
</span></font></p>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><font face="monospace"><span style="color: #000000; ">thread&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">new</span><span style="color: #000000; ">&nbsp;Thread()&nbsp;{<br />
&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;run()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/Images/dot.gif" alt="" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">isInterrupted()&nbsp;</span><span style="color: #000000; ">&amp;&amp;</span><span style="color: #000000; ">&nbsp;hasMoreDataToDownload()){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;downloadAndWriteSomeMore();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(isInterrupted()){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;deleteThePartiallyDownloadedFile();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;callBack();<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
}<br />
thread.start();<br />
thread.interrupt();</span></font></div>
<font face="monospace">
</font>
<p>&nbsp;</p>
<p class="p0" style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'monospace'; "><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">&nbsp;&nbsp; &nbsp;如果线程被中断，则调用</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Times New Roman'; ">deleteThePartiallyDownloadedFile()</span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">函数，删除没有完成下载的文件。当线程没有被中断，则调用</span><span style="font-size: 10.5pt; font-family: 宋体; ">callBack()<font face="宋体">函数，可以使用</font><font face="Times New Roman">handler</font><font face="宋体">发送下载完成的信息。</font></span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; "><o:p></o:p></span></p>
<p class="p0" style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">&nbsp;&nbsp; &nbsp;如果你的线程中没有这样一个主循环，例如只是执行一个很耗时的<font face="Times New Roman">SQL</font><font face="宋体">查询操作，可以在查询操作之后调用&nbsp;</font><font face="Times New Roman">isInterrupted()</font><font face="宋体">来判断是否需要结束线程。</font></span><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; "><o:p></o:p></span></p>
<p class="p0" style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; "><font face="宋体">&nbsp;&nbsp; &nbsp;文章翻译自：http://www.helloandroid.com/tutorials/interruptingcancelling-threads</font></span></p>
<img src ="http://www.blogjava.net/andteamroid/aggbug/346018.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andteamroid/" target="_blank">andteamroid</a> 2011-03-09 12:53 <a href="http://www.blogjava.net/andteamroid/archive/2011/03/09/346018.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>反锯齿办法</title><link>http://www.blogjava.net/andteamroid/archive/2010/10/22/335901.html</link><dc:creator>andteamroid</dc:creator><author>andteamroid</author><pubDate>Fri, 22 Oct 2010 09:01:00 GMT</pubDate><guid>http://www.blogjava.net/andteamroid/archive/2010/10/22/335901.html</guid><wfw:comment>http://www.blogjava.net/andteamroid/comments/335901.html</wfw:comment><comments>http://www.blogjava.net/andteamroid/archive/2010/10/22/335901.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andteamroid/comments/commentRss/335901.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andteamroid/services/trackbacks/335901.html</trackback:ping><description><![CDATA[<span  style="color: #848484; font-family: Tahoma, Verdana, Arial; font-size: 10px; ">在Android中，目前，我知道有两种出现锯齿的情况。 ① 当我们用Canvas绘制位图的时候，如果对位图进行了选择，则位图会出现锯齿。 ② 在用View的RotateAnimation做动画时候，如果View当中包含有大量的图形，也会出现锯齿。我们分别以这两种情况加以考虑。 ◆ 用Canvas绘制位的的情况。在用Canvas绘制位图时，一般地，我们使用drawBitmap函数家族，在这些函数中，都有一个Paint参数，要做到防止锯齿，我们就要使用到这个参数。如下：首先在你的构造函数中，需要创建一个Paint。 Paint mPaint = new Paint（）； 然后，您需要设置两个参数: 1)mPaint.setAntiAlias(); 2)mPaint.setBitmapFilter(true)。第一个函数是用来防止边缘的锯齿，第二个函数是用来对位图进行滤波处理。最后，在画图的时候，调用drawBitmap函数，只需要将整个Paint传入即可。 ◆ 有时候，当你做RotateAnimation时，你会发现，讨厌的锯齿又出现了。这个时候，由于你不能控制位图的绘制，只能用其他方法来实现防止锯齿。另外，如果你画的位图很多。不想每个位图的绘制都传入一个Paint。还有的时候，你不可能控制每个窗口的绘制的时候，您就需要用下面的方法来处理——对整个Canvas进行处理。 1）在您的构造函数中，创建一个Paint滤波器。 PaintFlagsDrawFilter mSetfil = new PaintFlagsDrawFilter(0, Paint.FILTER_BITMAP_FLAG);第一个参数是你要清除的标志位，第二个参数是你要设置的标志位。此处设置为对位图进行滤波。 2）当你在画图的时候，如果是View则在onDraw当中，如果是ViewGroup则在dispatchDraw中调用如下函数。 canvas.setDrawFilter( mSetfil ); ★ 最后，另外，在Drawable类及其子类中，也有函数setFilterBitmap可以用来对Bitmap进行滤波处理，这样，当你选择Drawable时，会有抗锯齿的效果。</span>
<img src ="http://www.blogjava.net/andteamroid/aggbug/335901.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andteamroid/" target="_blank">andteamroid</a> 2010-10-22 17:01 <a href="http://www.blogjava.net/andteamroid/archive/2010/10/22/335901.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu下adb连接G1提示no premissions的解决方法</title><link>http://www.blogjava.net/andteamroid/archive/2010/06/13/323482.html</link><dc:creator>andteamroid</dc:creator><author>andteamroid</author><pubDate>Sat, 12 Jun 2010 16:30:00 GMT</pubDate><guid>http://www.blogjava.net/andteamroid/archive/2010/06/13/323482.html</guid><wfw:comment>http://www.blogjava.net/andteamroid/comments/323482.html</wfw:comment><comments>http://www.blogjava.net/andteamroid/archive/2010/06/13/323482.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andteamroid/comments/commentRss/323482.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andteamroid/services/trackbacks/323482.html</trackback:ping><description><![CDATA[<p>好不容易折腾好了sdk，自然要把adb用起来，但是我打开终端输入adb devices，得到的却是如下内容：</p>
<blockquote>
<p>????????????	no permissions</p>
</blockquote>
<p>乍一看好像需要root权限，可是输入sudo adb devices，还是不行，上网研究了一下，原来最开始启动adb的时候要有root权限，然后就随便了，如果一开始忘记了加sudo，就必须先终止adb，然后重来，过程如下：</p>
<blockquote>
<p>$ adb kill-server<br />
$ sudo adb start-server<br />
$ adb devieces</p>
</blockquote>
<p>看看是不是可以得到设备信息了？我的机器是G1，不过所有android系统的机器应该都一样的。</p>
<p>另外，如果你向我一样把sdk的目录写进了当前用户的PATH设置，但是root用户的PATH里没有，那么第二步会提示command not found，只要换成如下命令就行了：</p>
<blockquote>
<p>$ sudo /sdk安装目录/tools/adb start-server</p>
<p><br />
</p>
<p>转自：http://alfred.bt4.org/archives/384<br />
</p>
</blockquote>
<img src ="http://www.blogjava.net/andteamroid/aggbug/323482.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andteamroid/" target="_blank">andteamroid</a> 2010-06-13 00:30 <a href="http://www.blogjava.net/andteamroid/archive/2010/06/13/323482.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>