廣播的最佳實(shí)踐——實(shí)現(xiàn)強(qiáng)制下線功能(Android_Broadcast)

?關(guān)鍵詞:Broadcast片仿, 生命周期配猫,繼承


本項(xiàng)目基本思路:

1.先創(chuàng)建一個(gè)ActivityCollector類用于管理所有的活動(dòng);

2.然后創(chuàng)建一個(gè)BaseActivity類作為所有活動(dòng)的父類:

父類功能有二:

其一炭庙,用于輔助統(tǒng)籌管理本項(xiàng)目的所有活動(dòng)饲窿。調(diào)用ActivityCollector類的方法,如類中的onCreate和onDestroy方法焕蹄,所有從父類派生出去的子類逾雄,在創(chuàng)建時(shí)會(huì)被加入ActivityCollector的數(shù)組activities里面,銷毀時(shí)則會(huì)從里面被移除腻脏;用數(shù)組activities統(tǒng)籌本項(xiàng)目的活動(dòng)鸦泳,可以很容易實(shí)現(xiàn)銷毀所有活動(dòng)的功能;

其二永品,隨后我們將重寫本類的onResume和onPause方法做鹰,所有從父類派生出去的子類,在棧頂狀態(tài)(onResume()方法執(zhí)行之后的處于準(zhǔn)備交互的狀態(tài))都會(huì)注冊(cè)一個(gè)接收器鼎姐,接收廣播信息钾麸,收到廣播信息后執(zhí)行onReceive方法更振,彈出對(duì)話框,隨后銷毀所有活動(dòng)喂走,重新啟動(dòng)LoginActivity殃饿,實(shí)現(xiàn)強(qiáng)制下線;在失去棧頂位置的時(shí)候芋肠,則將接收器銷毀乎芳;這樣強(qiáng)制下線的功能就不會(huì)依附于任何的界面,不管是在程序的任何地方帖池,只需要發(fā)出這樣一條廣播,就可以完成強(qiáng)制下線的操作了肴甸;

3.新建LoginActivity原在,作為登錄界面庶柿,用戶輸入密碼和賬號(hào)浮庐,正確則通過跳轉(zhuǎn)到MainActivity柬焕,失敗則Toast提示斑举;

4.MainActivity,簡單的一個(gè)按鈕介时,用于發(fā)送廣播沸柔;

源碼地址(碼云):Lwp/AndroidDemo - 碼云 Gitee.com


參考文獻(xiàn):《第一行代碼(第2版)》



主要步驟:

先創(chuàng)建一個(gè)ActivityCollector類用于管理所有的活動(dòng):

右鍵包->new->Java Class:


然后創(chuàng)建一個(gè)BaseActivity類作為所有活動(dòng)的父類:



本父類功能有二:

其一,用于輔助統(tǒng)籌管理本項(xiàng)目的所有活動(dòng)工三。如類中的onCreate和onDestroy方法,所有從本類派生出去的子類奸鬓,在創(chuàng)建時(shí)會(huì)被加入ActivityCollector的數(shù)組activities里面串远,銷毀時(shí)則會(huì)從里面被移除儿惫;

其二,隨后我們將重寫本類的onResume和onPause方法留搔,所有從本類派生出去的子類隔显,在棧頂狀態(tài)都會(huì)注冊(cè)一個(gè)接收器荣月,在失去棧頂位置的時(shí)候,則將接收器銷毀捐下;


新建LoginActivity:



布局代碼:


布局預(yù)覽圖:


LoginActivity代碼:


MainActivity的代碼,這里不需要什么花里花俏的功能廓奕,只需要弄一個(gè)按鈕實(shí)現(xiàn)強(qiáng)制下線的功能就可以了:



修改BaseActivity,動(dòng)態(tài)注冊(cè)一個(gè)廣播接收器:重寫本類的onResume和onPause方法衙四,所有從本類派生出去的子類,在棧頂狀態(tài)都會(huì)注冊(cè)一個(gè)接收器押逼,在失去棧頂位置的時(shí)候,則將接收器銷毀咙冗;

```

AlertDialog.Builder builder =new AlertDialog.Builder(LoginActivity.this);

builder.setTitle("..")

.setMessage("...")

.setCancelable(false)

.setPositiveButton("確定", new DialogInterface.OnClickListener() {

@Override

? ? ? ? ? public void onClick(DialogInterface dialog, int which) {

finish();

? ? ? ? ? }

})

.show();

```

最后將主活動(dòng)設(shè)置為LoginActivity而不再是MainActivity:

最后上運(yùn)行結(jié)果圖:

密碼或賬號(hào)輸入錯(cuò)誤時(shí)彈出提示:

輸入正確显歧,進(jìn)入MainActivity:

點(diǎn)擊按鈕士骤,彈出對(duì)話框,強(qiáng)制下線:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市巨缘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌搁骑,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仲器,死亡現(xiàn)場離奇詭異乏冀,居然都是意外死亡辆沦,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門肢扯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹃彻,“玉大人妻献,你說我怎么就攤上這事团赁』渡悖” “怎么了怀挠?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵害捕,是天一觀的道長。 經(jīng)常有香客問我吞滞,道長裁赠,這世上最難降的妖魔是什么赴精? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮一忱,結(jié)果婚禮上帘营,老公的妹妹穿的比我還像新娘琼富。我一直安慰自己庄新,他們只是感情好择诈,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布羞芍。 她就那樣靜靜地躺著,像睡著了一般唯咬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胆胰,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天瞎嬉,我揣著相機(jī)與錄音厚柳,去河邊找鬼。 笑死别垮,一個(gè)胖子當(dāng)著我的面吹牛宰闰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播解藻,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼卢未,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼胶背!你這毒婦竟也來了喘先?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬榮一對(duì)情侶失蹤红且,失蹤者是張志新(化名)和其女友劉穎涤姊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壁酬,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡岳服,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年派阱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了斜纪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盒刚。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖橘原,靈堂內(nèi)的尸體忽然破棺而出趾断,到底是詐尸還是另有隱情吩愧,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布脐帝,位于F島的核電站堵腹,受9級(jí)特大地震影響疚顷,放射性物質(zhì)發(fā)生泄漏禁偎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一释液、第九天 我趴在偏房一處隱蔽的房頂上張望装处。 院中可真熱鬧妄迁,春花似錦、人聲如沸箫老。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牲蜀。三九已至涣达,卻和暖如春证薇,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背寇窑。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來泰國打工疗认, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人横漏。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓缎浇,卻偏偏與公主長得像赴肚,于是被迫代替她去往敵國和親素跺。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349