android資料共享

2021-06-16 09:26:46 字數 3332 閱讀 7248

android系統有個突出的特點,可以在不同的應用中進行資料傳遞,這樣你就可以很方便的進行內容分享,或者利用別的應用滿足你的需求。

當你構建乙個intent時,你需要制定intent的意圖。android定義了許多actions,包括action_send,你可能會猜到,它就是用來將資料傳送到乙個或者多個activity中的action,它甚至可以跨程序傳遞。為了將資料傳遞到別的activity中。你需要的做的就是指定資料及資料型別,系統會選擇適合的activitys接受,若有多項會開啟列表供使用者選擇,只有乙個時直接開啟它。同樣的,你需要在manifest中定義你的activity可以接收處理的資料。應用間通常用intent傳送和接受資料,它使使用者可以簡單快速選擇他們喜愛的應用分享資訊。

注:通過actionbar分享資料是個不錯的方式

傳遞文字內容

最簡單通用的方式是通過action_send 動作將檔案內容從乙個activity中傳至另乙個,例如:內建的瀏覽器應用可以以文字的方式分享當前頁面的url到別的應用中。同樣也可以用通過email或者其他社交工具在朋友間分享文章或者**。下面是例子**:

intent sendintent =newintent();

sendintent.setaction(intent.action_send);

sendintent.putextra(intent.extra_text,"this is my text to send.");

sendintent.settype("text/plain");

startactivity(sendintent);

如果已安裝的應用中的filter中可以處理action_send和mime 型別 "text/plain",android系統就會開啟它,如果有多個應用匹配,系統會顯示乙個列表框供使用者選擇。如果你通過intent.createchooser()呼叫intent,android系統總是會顯示選擇框,有以下優點:

例子如下:

intent sendintent =newintent();

sendintent.setaction(intent.action_send);

sendintent.putextra(intent.extra_text,"this is my text to send.");

sendintent.settype("text/plain");

startactivity(intent.createchooser(sendintent, getresources().gettext(r.string.send_to));

通常,你可以在intent中使用標準的extras:extra_email, extra_cc, extra_bcc, extra_subject.如何如果接受的應用中沒有對他們做任何處理會無任何反應。你可以使用自定義的extras,但是除非接受的應用知道他的意圖,否則沒有應用會接受它。通常應用內部可以使用這種自定義的extras;

注:一些e-mail應用,如gmail會將乙個string以 putextra(string, string)的方式設定extra_email和extra_cc;

傳遞二進位制檔案內容

二進位制檔案的分享同樣可以通過action_send 動作,設定適當的mime 型別,並將檔案的uri設定在extra_stream中進行傳遞。通常用這種方式分享,但也可用來分享其他型別的二進位制檔案:

intent shareintent =newintent();

shareintent.setaction(intent.action_send);

shareintent.putextra(intent.extra_stream, uritoimage);

shareintent.settype("image/jpeg");

startactivity(intent.createchooser(shareintent, getresources().gettext(r.string.send_to)));

以下是注意事項:

傳遞多個檔案內容

為了分享多個檔案,可以使用 action_send_multiple 動作將uris列表匯集在一起。根據你分享的內容組合不同的mime型別; 例如:如果你分享3張jpeg,型別仍然  使用"image/jpeg".為了混合多組檔案型別,你需要使用image/* 進行匹配,使你的activity處理不同型別的,如果你分享多種型別的資料你只能使用*/*. 如前所述,下面是乙個接收應用程式解析和處理資料。例子:

arraylistimageuris =newarraylist();

imageuris.add(imageuri1);// add your image uris here

imageuris.add(imageuri2);

intent shareintent =newintent();

shareintent.setaction(intent.action_send_multiple);

shareintent.putparcelablearraylistextra(intent.extra_stream, imageuris);

shareintent.settype("image/*");

startactivity(intent.createchooser(shareintent,"share images to.."));

android 資料文件共享

android在數字機頂盒技術發展介紹 android rom製作 android應用程式開發流程要點 1 android 圖示設計標準與原則 android 桌面應用程式 home分析 簡單實現android翻轉動畫效果 android ui基本控制項 android 客戶端開發流程圖及案例 an...

Android共享全域性資料

在平時的開發中,有時候我們需要一些全域性資料,來讓應用中的所有activity和view都能訪問,大家在遇到這種情況時,可能首先會想到自己定義乙個類,然後建立很多靜態成員,不過android已經為我們提供了解決方案,下面就來介紹一下 1 2345 6789 1011 private int scor...

Android共享全域性資料

在平時的開發中,有時候我們需要一些全域性資料,來讓應用中的所有activity和view都能訪問,大家在遇到這種情況時,可能首先會想到自己定義乙個類,然後建立很多靜態成員,不過android已經為我們提供了解決方案,下面就來介紹一下 1 2345 6789 1011 private int scor...