2019-01-30 Activity以singleTask模式啟動印衔,intent傳值的解決辦法

轉(zhuǎn)載請注明出處啡捶,謝謝??http://blog.csdn.net/harryweasley/article/details/46557827

因為項目中,有一個消息推送的功能奸焙,每次推送一個消息瞎暑,就會開啟FunctionActivity,那么為了避免重復(fù)開啟它与帆,在退后的時候了赌,多次出現(xiàn)該Activity,就將該Activity的啟動模式變?yōu)閟ingleTask玄糟。

這樣在之后的多次啟動該Activity勿她,便會調(diào)用onNewIntent(Intent intent)方法。

activity通過intent傳遞數(shù)據(jù)的時候,如果activity未啟動,那么在這個剛啟動的activity里通過getIntent()會獲取到這個intent的數(shù)據(jù).如果要啟動的activity是已經(jīng)存在的,這時候通過getInten()方法獲取到的intent是已啟動的activity的原始intent.換句話說intent的數(shù)據(jù)沒有更新.這樣在已啟動的activity里拿到的intent的數(shù)據(jù)是舊數(shù)據(jù).如果要每次獲取intent傳來的新數(shù)據(jù)就需要在onNewIntent(Intent intent)方法里調(diào)用setIntent(intent)設(shè)置這個傳來的最新的intent.如下所示:

@Override

protected void onNewIntent(Intent intent) {

super.onNewIntent(intent);

Log.e("tag", "onNewINtent執(zhí)行了");

setIntent(intent);

String ringName = intent.getStringExtra("ringName");

Log.e("tag", ringName+"傳過來的值");

if (ringName != null) {

pager.setCurrentItem(1);

}

}

當(dāng)然茶凳,如果activity的啟動模式是standard,那么每次都重新創(chuàng)建一個新的activity.這樣intent也是最新的.就不用通過setIntent來更新這個intent.

我這個項目中嫂拴,F(xiàn)unctionActivity中里面是四個Fragment播揪,這樣我從其他Activity跳轉(zhuǎn)到FunctionActivity是不會實例化贮喧,通過getIntent()方法也不能獲得最新的intent,為了解決這個辦法猪狈。還是在onNewIntent方法中箱沦,將更新的intent通過getIntent().putExtras(intent);共享出去,如下所示:

@Override

protected void onNewIntent(Intent intent) {

super.onNewIntent(intent);

Log.e("tag", "onNewINtent執(zhí)行了");

setIntent(intent);

getIntent().putExtras(intent);

}

這樣在與它關(guān)聯(lián)的Fragment中雇庙,就可以調(diào)用

@Override

public void onResume() {

super.onResume();

// 第一次進(jìn)入這個頁面谓形,下面的方法是不會執(zhí)行的灶伊,因為ringName是null

String ringName = getActivity().getIntent().getStringExtra("ringName");

if (ringName != null) {

newSound.setText(ringName);

Log.e("tag", ringName + "要保存的值");

SharedPreferenceUtil.setString(getActivity(),

SharedPreferenceUtil.RINGTONE_NAME, ringName);

}

}

注意,這里Fragment調(diào)用的時候寒跳,一定要在onResume方法中聘萨。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市童太,隨后出現(xiàn)的幾起案子米辐,更是在濱河造成了極大的恐慌,老刑警劉巖书释,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翘贮,死亡現(xiàn)場離奇詭異,居然都是意外死亡爆惧,警方通過查閱死者的電腦和手機狸页,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扯再,“玉大人芍耘,你說我怎么就攤上這事∠ㄗ瑁” “怎么了齿穗?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長饺律。 經(jīng)常有香客問我窃页,道長,這世上最難降的妖魔是什么复濒? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任脖卖,我火速辦了婚禮,結(jié)果婚禮上巧颈,老公的妹妹穿的比我還像新娘畦木。我一直安慰自己,他們只是感情好砸泛,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布十籍。 她就那樣靜靜地躺著,像睡著了一般唇礁。 火紅的嫁衣襯著肌膚如雪勾栗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天盏筐,我揣著相機與錄音围俘,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛界牡,可吹牛的內(nèi)容都是我干的簿寂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宿亡,長吁一口氣:“原來是場噩夢啊……” “哼常遂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起挽荠,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤烈钞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后坤按,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體毯欣,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年臭脓,在試婚紗的時候發(fā)現(xiàn)自己被綠了酗钞。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡来累,死狀恐怖砚作,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嘹锁,我是刑警寧澤葫录,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站领猾,受9級特大地震影響米同,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜摔竿,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一面粮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧继低,春花似錦熬苍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粱胜,卻和暖如春柄驻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背年柠。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工凿歼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人冗恨。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓答憔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親掀抹。 傳聞我的和親對象是個殘疾皇子虐拓,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

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