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開(kāi)發(fā)自定義短信驗(yàn)證碼實(shí)現(xiàn)過(guò)程詳解
這篇文章主要為大家介紹了Android開(kāi)發(fā)自定義短信驗(yàn)證碼實(shí)現(xiàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
Android設(shè)置Activity背景為透明style的簡(jiǎn)單方法(必看)
下面小編就為大家?guī)?lái)一篇Android設(shè)置Activity背景為透明style的簡(jiǎn)單方法(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
Android將camera獲取到的YuvData在jni中轉(zhuǎn)化為Mat方法
今天小編就為大家分享一篇Android將camera獲取到的YuvData在jni中轉(zhuǎn)化為Mat方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
Android創(chuàng)建文件時(shí)出現(xiàn)java.io.IOException:?Operation?not?permitte
最近使用android10創(chuàng)建文件失敗,并拋出權(quán)限異常,這篇文章主要給大家介紹了Android創(chuàng)建文件時(shí)出現(xiàn)java.io.IOException:?Operation?not?permitted異常的解決方法,需要的朋友可以參考下2023-05-05
Android中的Handler與多線程應(yīng)用實(shí)例
這篇文章主要介紹了Android中的Handler與多線程應(yīng)用實(shí)例,本文首先解釋一下handler是用來(lái)干嘛的,然后通過(guò)例子介紹其在多線程中的應(yīng)用,需要的朋友可以參考下2015-03-03
Android BSearchEdit 搜索結(jié)果選擇框的實(shí)例代碼
EditText搜索結(jié)果下拉框、自動(dòng)or回調(diào)模式、可diy、使用超簡(jiǎn)便。這篇文章主要介紹了Android BSearchEdit 搜索結(jié)果選擇框的實(shí)例代碼,需要的朋友可以參考下2019-10-10

