您好,登錄后才能下訂單哦!
本篇文章為大家展示了Android中怎么實現數據傳遞,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
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,它的***個參數必須有package前綴,也就是說我們不能隨意指定一個String,而必須帶有package prefix,如例子中我們可以定義YOURDATA如下:
public final static String YOURDATA =
"com.javaeye.notfatboy.testArg";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。舉例如下:
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中怎么實現數據傳遞,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。