Android資料傳遞相關內容概述

來源:互聯網
上載者:User

在Android這一作業系統中對於資料的傳遞,實現的方法多樣化,大家可以根據自身的不同需求來選擇一個適合自己的方法來進行操作。在這裡我們就先為大家詳細介紹一下Android資料傳遞的相關方法。

首先我們在Android中用的最多的就是Activity之間的傳值

Activity之間的傳值

在Activity之間傳值,我們是通過Intent來完成的。這部分相信有點基礎的兄弟們都會知道我們是利用Intent的Extra部分來儲存我們想要傳遞的data的。舉例如下:

 
  1. Intent i = new Intent(this, YourClass.class);   
  2. i.putExtra(YOURDATA, data);   
  3. startActivity(i);   
  4. Intent i = new Intent(this, YourClass.class);  
  5. i.putExtra(YOURDATA, data);  
  6. startActivity(i);  

這裡需要注意的是putExtra method,它的第一個參數必須有package首碼,也就是說我們不能隨意指定一個String,而必須帶有package prefix,如例子中我們可以定義YOURDATA如下:

 
  1. public final static String YOURDATA = 
    "com.javaeye.notfatboy.testArg";   
  2. ublic final static String YOURDATA = 
    "com.javaeye.notfatboy.testArg";  

而第二個參數可以是int, long, char等等很多種類型,具體見putExtra()

  • Android判斷網路狀態方法詳解
  • Android單元測試源碼解讀
  • Android Jni程式碼範例講解
  • Android安裝卸載程式具體操作方法解析
  • Android Shell命令相關內容講解

實際上Intent的使用範圍要廣泛的多,我們可以在任何使用Intent的地方來通過Extra進行傳值,推而廣之,我們也可以給Service傳值,給Broadcast Receiver傳值,而這也說明了另一個問題,即我們可以通過這種方式在不同的進程和線程之間進行傳值,因為Activity,Service,Broadcast這些Components可以在不同的進程或者線程之中,這也是Android為我們提供的一個輕量級的進程,線程間通訊的方式。

除此之外,Android還為我們提供了一些稍微複雜點的傳值機制,就Thread而言,我們可以通過Message Queue來實現Android資料傳遞。

Messag Queue

Message Queue是個非常有用而且有趣的機制。假設我們有兩個Thread,一個是thread A,另一個是thread B。 thread A有一個Message Queue,並且對應一個Handler來處理Message,這是只要thread B擷取了該Handler的reference就可以給發送訊息給Thread A。舉例如下:

 
  1. public class ThreadB extends Thread {   
  2. ....   
  3. public void run(){   
  4. ...   
  5. String str = "Test String";   
  6. Message msg = mHandler.obtainMessage(1, str);   
  7. mHandler.sendMessage(msg);   
  8. ..   
  9. }   
  10. }   
  11. public class ThreadB extends Thread {  
  12. ....  
  13. public void run(){  
  14. ...  
  15. String str = "Test String";  
  16. Message msg = mHandler.obtainMessage(1, str);  
  17. mHandler.sendMessage(msg);  
  18. ..  
  19. }  

當然Message Queue還有很多其他的使用方法,在這裡就不再一一贅述,有興趣的同學可以再仔細研究下,此處只做拋磚引玉。

對於IPC進程通訊而言,Android也提供了一個稍微複雜點的機制--- AIDL

AIDL

在Android當中我們可以通過AIDL來定義特定的介面,從而實現RPC,而不再是簡單的傳值,關於這部分已經有很多文章介紹了詳細使用方法,不再贅述。

Android資料傳遞的相關方法就為大家介紹到這裡。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.