android簡單的跨進程訪問

? ? ? ?看到跨進程,想必大家想到的都是AIDL,Binder鱼喉,廣播秀鞭,內(nèi)容提供器等,但是AIDL扛禽,Binder可能有點難度锋边,廣播太過于被動,要主動聯(lián)系有點困難编曼,而內(nèi)容提供器豆巨,對于太簡單的數(shù)據(jù),顯得有點大掐场,畢竟我可能就是為了獲取一個簡單的字段而已往扔。

? ? ? ? 首先,先說下接到的一個客戶的需求吧熊户。有個字段需要客戶提供接口萍膛,顯示對應(yīng)的數(shù)據(jù),而客戶只發(fā)過來一個apk嚷堡,說是啟動一個activity即可蝗罗,傳入?yún)?shù),在onActivityResult獲取結(jié)果即可蝌戒,而客戶的activity處理成透明串塑,會將數(shù)據(jù)返回,關(guān)閉當前的activity北苟,路子野了點桩匪,但好歹實現(xiàn)了不是,因為客戶的apk已經(jīng)形成粹淋,不好改啥了吸祟,就將就著用了。

? ? ? ? 然后桃移,客戶又提了個需求屋匕,我的A應(yīng)用的某個值顯示的情況根據(jù)B的一個選擇(該選擇會在B的SharedPreferences中保存),這時候借杰,B也是自己開發(fā)的过吻,那就可以選擇自己的跨進程方式了。首先,當然也可以像客戶那樣的方式纤虽,但是乳绕,畢竟有點強迫癥,啟動一個透明的activity就為了取個值逼纸,太奇怪了洋措,然后,AIDL,Binder杰刽,好吧菠发,承認不大會,最后就是content provider啥的贺嫂,我真的就取個boolean值滓鸠,有點大材小用了吧,最后想到SharedPreferences可不可以共享來著第喳,果然發(fā)現(xiàn)有個MODE_MULTI_PROCESS糜俗,這個意思不就是多進程么,于是代碼如下:

Context context=null;

try{

context=this.createPackageContext("你要訪問的B應(yīng)用的包名",

Context.CONTEXT_IGNORE_SECURITY);

SharedPreferences settings=context.getSharedPreferences("你的SharedPreferencesname",

Context.MODE_MULTI_PROCESS);

// SharedPreferences.Editor edtor=settings.edit();

boolean bOnOff=settings.getBoolean("你的key值",true);//取得保存的值

return bOnOff;

}catch(PackageManager.NameNotFoundException e) {

e.printStackTrace();

return true;

}

代碼很簡單曲饱,一個是createPackageContext這個函數(shù)悠抹,這個是創(chuàng)建其他的包的上下文,否則扩淀,你是從你的私人空間取值锌钮,肯定是取不到的,其次是mode一定是MODE_MULTI_PROCESS這個,這個才能跨進程。

? ? ? ? 然后還是會發(fā)現(xiàn)缝龄,讀取不了值,仔細看log氛谜,有個警告信息是Attempt to read preferences file /data/data/xxx/shared_prefs/xxx.xml without permission,那就是沒權(quán)限了区端,爬了一下午的文總算找到原因了值漫,manifest根布局下的android:sharedUserId,兩個應(yīng)用設(shè)置同一個id即可织盼,原因也很簡單杨何,android:sharedUserId

The name of a Linux user ID that will be shared with other applications. By default, Android assigns each application its own unique user ID. However, if this attribute is set to the same value for two or more applications, they will all share the same ID — provided that they are also signed by the same certificate. Application with the same user ID can access each other's data and, if desired, run in the same process.

google說這個id是linux用戶id,也就是平常不能訪問是因為用戶不同沥邻,被隔絕危虱,而默認的會給每個應(yīng)用分配唯一的id,也就是不會相同唐全。設(shè)置成一樣就代表同一個用戶埃跷,就可以互相訪問了蕊玷。

? ? ? ? 最后說下,這個跨進程是不安全的弥雹,你也會發(fā)現(xiàn)垃帅,在最新的api中是不建議使用的,不安全是因為如果兩個都同事要改的話剪勿。但是一來贸诚,我只有一個會改,二來厕吉,我更改都是UI線程赦颇,一個UI線程同時只會存在一個,不會出現(xiàn)兩個同事訪問赴涵,最后,當然是方便了订讼,我就取個值髓窜,沒特別大的要求,當然簡單使用了欺殿,想要復(fù)雜點的寄纵,最上面的方式,隨便搜下一大堆的使用方式的脖苏。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末程拭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子棍潘,更是在濱河造成了極大的恐慌恃鞋,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亦歉,死亡現(xiàn)場離奇詭異恤浪,居然都是意外死亡,警方通過查閱死者的電腦和手機肴楷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門水由,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赛蔫,你說我怎么就攤上這事砂客。” “怎么了呵恢?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵鞠值,是天一觀的道長。 經(jīng)常有香客問我渗钉,道長齿诉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮粤剧,結(jié)果婚禮上歇竟,老公的妹妹穿的比我還像新娘。我一直安慰自己抵恋,他們只是感情好焕议,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著弧关,像睡著了一般盅安。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上世囊,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天别瞭,我揣著相機與錄音,去河邊找鬼株憾。 笑死蝙寨,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的嗤瞎。 我是一名探鬼主播墙歪,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贝奇!你這毒婦竟也來了虹菲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤掉瞳,失蹤者是張志新(化名)和其女友劉穎毕源,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陕习,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡脑豹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了衡查。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瘩欺。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖拌牲,靈堂內(nèi)的尸體忽然破棺而出俱饿,到底是詐尸還是另有隱情,我是刑警寧澤塌忽,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布拍埠,位于F島的核電站,受9級特大地震影響土居,放射性物質(zhì)發(fā)生泄漏枣购。R本人自食惡果不足惜嬉探,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望棉圈。 院中可真熱鬧涩堤,春花似錦、人聲如沸分瘾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽德召。三九已至白魂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間上岗,已是汗流浹背福荸。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肴掷,地道東北人敬锐。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像捆等,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子续室,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容