Time of Update: 2017-01-19
每個Handler對象與建立它的線程相關聯,並且每個Handler對象只能與一個線程相關聯。Handler一般有兩種用途:1)執行計畫任務,你可以再預定的實現執行某些任務,可以類比定時器。2)線程間通訊。在Android的應用啟動時,會建立一個主線程,主線程會建立一個訊息佇列來處理各種訊息。當你建立子線程時,你可以再你的子線程中拿到父線程中建立的Handler對象,就可以通過該對象向父線程的訊息佇列發送訊息了。由於Android要求在UI線程中更新介面,因此,可以通過該方法在其它線程中更新介面。
Time of Update: 2017-01-19
這次淺談一下Handler,為什麼會出現Handler這個功能特性呢?首先,在之前的基本控制項,基本都是在Activity的onCreate(Bundle
Time of Update: 2017-01-19
其實文字遊戲程式很簡單,就是一個view和一個Activity,在利用下handier和postInvalidate()更新UI調用Handler.post(Runnable r)方法,Runnable運行在UI所線上程,所以可以直接調用View.invalidate() 複製代碼
Time of Update: 2017-01-19
Android Handler的使用,在講Handler之前,我們先提個小問題,就是如何讓程式5秒鐘更新一下Title.首先我們看一下習慣了Java編程的人,在不知道Handler的用法之前是怎麼樣寫的程式,代碼如下所示:複製代碼 代碼如下:package com.android.tutor; import java.util.Timer; import java.util.TimerTask; import
Time of Update: 2017-01-19
直接看代碼,注釋都寫清楚了複製代碼 代碼如下:public class MainActivity extends Activity { private ImageView iv; private Bitmap baseBitmap; private Canvas canvas; private Paint paint; @Override protected void onCreate(Bundle
Time of Update: 2017-01-19
1.Java JDK需要先說明下,OS X系統是內建有Java JDK1.6的。不過這裡我安裝的是JDK7,下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html。見下圖:下載後,雙擊安裝,如下圖:2.ADT(Android Develop
Time of Update: 2017-01-19
複製代碼 代碼如下://程式下載升級 zhouxiang@JavascriptInterfacepublic void UpdateCAECP(final String path){try{AlertDialog.Builder builder = new Builder((Context)obj);builder.setMessage(“檢測到有新版本發布,是否進行下載升級?”);builder.setTitle("程式更新提示");builder.setPositiveButton("升級"
Time of Update: 2017-01-19
需求是在我按下按鈕時,該變按鈕顏色,使使用者感覺到自己按了按鈕,當鬆開的時候,變回原來的顏色。正常時:按下時:有人說,直接監聽按鈕的按下事件不得了嘛,其實這樣確實能實現同樣的效果,但是有個缺點,比如很多按鈕都需要這樣的效果,那你同樣的代碼就要重複很多次。所以,還是要通用起來。首先,在res檔案夾下建立一個檔案夾drawable,這是無關解析度的:在下面建立一個xml檔案:login_button_selector.xml複製代碼 代碼如下:<selector xmlns:android="
Time of Update: 2017-01-19
無論是Android開發或者是其他移動平台的開發,ListView肯定是一個大咖,那麼對ListView的操作肯定是不會少的,上一篇部落格介紹了如何?全選和反選的功能,本篇部落格介紹刪除功能,刪除列表中的項無謂就是及時重新整理列表,這又跟UI線程扯上關係了,還是那句話,資料的更新通知一定要在UI線程上做,不然會出現各種錯誤,比如出現adapter資料來源改變,但沒有及時收到通知的情況。在執行遍曆刪除的時候,最好不要每刪一個就直接通知,下面是我的實現方法,將需要刪除的contact儲存到一個Lis
Time of Update: 2017-01-19
開發應用的時候會有一些有可能會變得值,例如webservice地址 應用的一些ID等等,之前一直都是直接在應用中改代碼,不是忘點這忘點那,於是想到了可以用Properties設定檔,我把網址等變數配置的設定檔中,這樣之後再改的話就直接改設定檔就行了,就不用改代碼了下面給大家說說Properties的用法複製代碼 代碼如下: public static String getPropertiesURL(Context c, String s) { String url =
Time of Update: 2017-01-19
快三個月了沒寫部落格了,因為工作調動,很多經驗、心得都沒有時間記錄下來。現在時間稍微充裕了點,我會盡量抽時間將之前想寫而沒寫的東西補上。進入正題。去年某個時候,我偶然看到一篇文章,講android裡面放大鏡的實現。文章很亂,沒有格式,基本上屬於看不下去的那種。雖然體裁很有意思,但是我也沒有足夠的內力把它看完。不過看到一句關鍵的話,說是使用帶圓形的Drawable。這句話就夠了,他下面寫的一堆東西我也懶得看,於是就自己開始嘗試,然後就做出來了。現在代碼貼出來分享。Java代碼複製代碼
Time of Update: 2017-01-19
Android中有Context的概念,想必大家都知道。Context可以做很多事情,開啟activity、發送廣播、開啟本包下檔案夾和資料庫、擷取classLoader、擷取資源等等。如果我們得到了一個包的Context對象,那我們基本上可以做這個包自己能做的大部分事情。那我們能得到嗎?很高興的告訴你,能!Context有個createPackageContext方法,可以建立另外一個包的上下文,這個執行個體不同於它本身的Context執行個體,但是功能是一樣的。這個方法有兩個參數:1。pac
Time of Update: 2017-01-19
今天碰到個問題,想擷取某個已安裝的包的大小,沒找到合適的方法。搜尋了一下,發現PackageManager裡面有個getPackageSizeInfo方法,可惜是hide的,而且它執行之後,會將結果回調給IPackageStatsObserver的onGetStatsCompleted方法。後來想直接計算/data/app和/system/app裡面的apk大小,可是有時候會碰到許可權問題,需要root才可以擷取大小。 &nb
Time of Update: 2017-01-19
1,工具代碼複製代碼 代碼如下:public class BytesTransUtil { private String TAG = "BytesTransUtil"; private static BytesTransUtil instance = null; private BytesTransUtil() { // Log.i(TAG, "instance BytesTransUtil"); } public
Time of Update: 2017-01-19
Intent應該算是Android中特有的東西。你可以在Intent中指定程式要執行的動作(比如:view,edit,dial),以及程式執行到該動作時所需要的資料。都指定好後,只要調用startActivity(),Android系統會自動尋找最符合你指定要求的應用程式,並執行該程式。下面列出幾種Intent的用法顯示網頁:複製代碼 代碼如下:Uri uri = Uri.parse("http://www.google.com");Intent it = new
Time of Update: 2017-01-19
在標準的Windows和Linux案頭作業系統中,同時可以在不同的視窗中運行多個應用程式,每次只有一個應用程式是當前焦點狀態,但其他的應用程式都是一個平等的位置。使用者可以隨時切換每個應用程式,在不需要應用程式時,也需要使用者來關閉應用程式。 但是Android作業系統的應用程式卻不是採用這種方式。
Time of Update: 2017-01-19
在google remote中,android接收端接收socket發來的IR CODE,然後將IR CODE類比出來發給系統處理,這就是google remote接收端的原理。系統端怎樣類比input event呢? 方法一:通過Instrumentation.sendKeyDownUpSync 實現,簡單使用但是問題在於sendKeyDownUpSync發出的event,無法運行到interceptKeyBeforeDispatching,也就無法正常作用
Time of Update: 2017-01-19
複製代碼 代碼如下:package com.act262.sockettx;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import
Time of Update: 2017-01-19
複製代碼 代碼如下:package com.example.sdcardtest;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStreamReader;import
Time of Update: 2017-01-19
複製代碼 代碼如下:public class FileObserverTest extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);MyFileObserver mfo = new MyFileObserver(getApplicationContext().getFilesDir() + "/data.txt");mfo.