溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android中如何實(shí)現(xiàn)數(shù)據(jù)傳遞

發(fā)布時(shí)間:2022-04-16 16:03:31 來源:億速云 閱讀:325 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下Android中如何實(shí)現(xiàn)數(shù)據(jù)傳遞的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

Activity之間的傳值

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

Intent i = new Intent(this, YourClass.class);   i.putExtra(YOURDATA, data);   startActivity(i);   Intent i = new Intent(this, YourClass.class);  i.putExtra(YOURDATA, data);  startActivity(i);

這里需要注意的是putExtra method,它的***個(gè)參數(shù)必須有package前綴,也就是說我們不能隨意指定一個(gè)String,而必須帶有package prefix,如例子中我們可以定義YOURDATA如下:

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

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

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

  • Android判斷網(wǎng)絡(luò)狀態(tài)方法詳解

  • Android單元測試源碼解讀

  • Android Jni代碼示例講解

  • Android安裝卸載程序具體操作方法解析

  • Android Shell命令相關(guān)內(nèi)容講解

實(shí)際上Intent的使用范圍要廣泛的多,我們可以在任何使用Intent的地方來通過Extra進(jìn)行傳值,推而廣之,我們也可以給Service傳值,給Broadcast Receiver傳值,而這也說明了另一個(gè)問題,即我們可以通過這種方式在不同的進(jìn)程和線程之間進(jìn)行傳值,因?yàn)锳ctivity,Service,Broadcast這些Components可以在不同的進(jìn)程或者線程之中,這也是Android為我們提供的一個(gè)輕量級(jí)的進(jìn)程,線程間通信的方式。

除此之外,Android還為我們提供了一些稍微復(fù)雜點(diǎn)的傳值機(jī)制,就Thread而言,我們可以通過Message Queue來實(shí)現(xiàn)Android數(shù)據(jù)傳遞。

Messag Queue

Message Queue是個(gè)非常有用而且有趣的機(jī)制。假設(shè)我們有兩個(gè)Thread,一個(gè)是thread A,另一個(gè)是thread B。 thread A有一個(gè)Message Queue,并且對應(yīng)一個(gè)Handler來處理Message,這是只要thread B獲取了該Handler的reference就可以給發(fā)送消息給Thread A。舉例如下:

public class ThreadB extends Thread {   ....   public void run(){   ...   String str = "Test String";   Message msg = mHandler.obtainMessage(1, str);   mHandler.sendMessage(msg);   ..   }   }   public class ThreadB extends Thread {  ....  public void run(){  ...  String str = "Test String";  Message msg = mHandler.obtainMessage(1, str);  mHandler.sendMessage(msg);  ..  }  }

以上就是“Android中如何實(shí)現(xiàn)數(shù)據(jù)傳遞”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI