溫馨提示×

溫馨提示×

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

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

Android中怎么實現(xiàn)數(shù)據(jù)傳遞

發(fā)布時間:2021-06-26 15:12:53 來源:億速云 閱讀:226 作者:Leah 欄目:移動開發(fā)

本篇文章為大家展示了Android中怎么實現(xiàn)數(shù)據(jù)傳遞,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Activity之間的傳值

在Activity之間傳值,我們是通過Intent來完成的。這部分相信有點基礎的兄弟們都會知道我們是利用Intent的Extra部分來存儲我們想要傳遞的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,它的***個參數(shù)必須有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";  

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

  • Android判斷網絡狀態(tài)方法詳解

  • Android單元測試源碼解讀

  • Android Jni代碼示例講解

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

  • Android Shell命令相關內容講解

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

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

Messag Queue

Message Queue是個非常有用而且有趣的機制。假設我們有兩個Thread,一個是thread A,另一個是thread B。 thread A有一個Message Queue,并且對應一個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中怎么實現(xiàn)數(shù)據(jù)傳遞,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

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

AI