Android中BroadcastReceiver案例講解
前言
我們?cè)谧?cè)一款A(yù)pp的時(shí)候,如果注冊(cè)成功的話,那么我們就直接跳過(guò)登陸界面,直接進(jìn)入主界面,那么我們現(xiàn)在就通過(guò)BroadcastReceiver來(lái)實(shí)現(xiàn)這個(gè)功能:
(1)注冊(cè)界面RegisterActivity.java,這里跳過(guò)了一些基本的操作,直接調(diào)用的是注冊(cè)方法signUp()方法:
btn_reg.signUp(RegisterActivity.this, new SaveListener() {
@Override
public void onSuccess() {
progress.dismiss();
ShowToast("注冊(cè)成功");
/** 注冊(cè)成功,發(fā)廣播通知登陸頁(yè)面退出 **/
sendBroadcast(new Intent(Constants.ACTION_REGISTER_SUCCESS_FINISH));
// 啟動(dòng)主頁(yè)面
Intent intent = new Intent(RegisterActivity.this,MainActivity.class);
startActivity(intent);
finish();
}
@Override
public void onFailure(int arg0, String arg1) {
BmobLog.i(arg1);
ShowToast("注冊(cè)失敗:" + arg1);
progress.dismiss();
}
});
我們可以看到,已經(jīng)發(fā)送了一個(gè)廣播,廣播名為:Constants.ACTION_REGISTER_SUCCESS_FINISH)
(2)如何通知登陸界面哪?下邊就是登陸界面的實(shí)現(xiàn):
我們需要在登陸界面的onCreate方法中進(jìn)行動(dòng)態(tài)注冊(cè)一個(gè)廣播接受者:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
//動(dòng)態(tài)注冊(cè)一個(gè)廣播接受者
//注冊(cè)退出廣播:就是一開(kāi)始注冊(cè)的時(shí)候,注冊(cè)成功的話就退出登陸界面,直接進(jìn)入主界面
IntentFilter filter = new IntentFilter();
// 注冊(cè)成功之后登陸頁(yè)面退出
// public static final String ACTION_REGISTER_SUCCESS_FINISH ="register.success.finish";
filter.addAction(BmobConstants.ACTION_REGISTER_SUCCESS_FINISH);
registerReceiver(receiver, filter); //注冊(cè)進(jìn)去
}
另外值得注意的是,我們通過(guò)動(dòng)態(tài)注冊(cè)的一個(gè)廣播接受者的haunted,我們就需要在onDestroy()方法中接觸綁定:
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}
(3)下邊是自己定義的一個(gè)廣播接受者的類(lèi),用于匹配意圖的時(shí)候,將login界面finish:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//如果匹配的話,就執(zhí)行finnish()
if (intent != null && BmobConstants.ACTION_REGISTER_SUCCESS_FINISH.equals(intent.getAction())) {
finish(); //注冊(cè)成功之后,將登陸界面finish()
}
}
}
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
Android 自定View實(shí)現(xiàn)仿QQ運(yùn)動(dòng)步數(shù)圓弧及動(dòng)畫(huà)效果
這篇文章主要介紹了Android自定義view實(shí)現(xiàn)高仿QQ運(yùn)動(dòng)步數(shù)圓弧及動(dòng)畫(huà)效果的實(shí)例代碼,本文涉及到繪制圓弧需要具備的知識(shí)點(diǎn),需要的朋友可以參考下2016-10-10
Android短信發(fā)送器實(shí)現(xiàn)方法
這篇文章主要介紹了Android短信發(fā)送器實(shí)現(xiàn)方法,以實(shí)例形式較為詳細(xì)的分析了Android短信發(fā)送器從界面布局到功能實(shí)現(xiàn)的完整步驟與相關(guān)技巧,需要的朋友可以參考下2015-09-09
rxjava+retrofit實(shí)現(xiàn)多圖上傳實(shí)例代碼
本篇文章主要介紹了rxjava+retrofit實(shí)現(xiàn)多圖上傳實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
kotlin anko頁(yè)面跳轉(zhuǎn)實(shí)現(xiàn)方式,攜帶參數(shù)或flag
這篇文章主要介紹了kotlin anko頁(yè)面跳轉(zhuǎn)實(shí)現(xiàn)方式,攜帶參數(shù)或flag,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Android點(diǎn)亮屏幕或屏幕解鎖和鎖定以及其他相關(guān)權(quán)限實(shí)現(xiàn)代碼
本文將帶你實(shí)現(xiàn)Android屏幕解鎖和鎖定;Android屏幕常亮/點(diǎn)亮以及其他相關(guān)權(quán)限,感興趣的朋友可以參考下,希望本文對(duì)你有所幫助2013-01-01
Android同步屏障機(jī)制sync barrier實(shí)例應(yīng)用詳解
這篇文章主要介紹了Android同步屏障機(jī)制sync barrier實(shí)例應(yīng)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-02-02
Android獲得所有存儲(chǔ)設(shè)備位置的最佳方法
今天小編就為大家分享一篇Android獲得所有存儲(chǔ)設(shè)備位置的最佳方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
20.5 語(yǔ)音合成(百度2016年2月29日發(fā)布的tts引擎)
編寫(xiě)手機(jī)App時(shí),有時(shí)需要使用文字轉(zhuǎn)語(yǔ)音(Text to Speech)的功能,比如開(kāi)車(chē)時(shí)閱讀收到的短信、導(dǎo)航語(yǔ)音提示、界面中比較重要的信息通過(guò)語(yǔ)音強(qiáng)調(diào)2016-03-03

