Android的广播初步了解
16lz
2021-01-26
我在看一些关于广播的基础的时候,总是看到不明不白的,直到后来真正用到了,才明天广播的强大,至少目前为止我是认为它强大的。
在要接收广播的Activity中添加内部类继承于BroadcastReceiver类:
class DeleteMailsReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {boolean result = intent.getBooleanExtra("result", false);if (result) {Toast.makeText(ActMailShow.this, "删除成功!", 100);} else {Toast.makeText(ActMailShow.this, "删除失败……", 100);}}}
然后在使用的类中声明以上类:private DeleteMailsReceiver deleteRece;
在onCreate中初始化:
deleteRece = new DeleteMailsReceiver();
让使用的Activity重载Activity的onStart函数和onStop函数: @Overrideprotected void onStart() {super.onStart();LocalBroadcastManager.getInstance(this).registerReceiver(deleteRece,new IntentFilter("MU_MAIL_DELETEMAILS_RESULT"));}@Overrideprotected void onStop() {super.onStop();LocalBroadcastManager.getInstance(this).unregisterReceiver(deleteRece);}
以上就是在接收广播的时候要的代码。当需要完成一个任务的时候,就调用其他类为其完成任务,然后就发送广播,广播中包含了所需的信息,继续在这个Activity中根据得到结果进行处理。比如如上要完成删除任务,在调用数据库中相关函数删除之后要返回是不是已经成功删除了,在根据石佛已经成功删除显示出不同的Toast。 发送广播是在一个继承Service的类实现的,在完成了任务后就要发送广播到调用的Activity类:
Intent i = new Intent("MU_MAIL_DELETEMAILS_RESULT");i.putExtra("result", result);//result是成功与否的标识LocalBroadcastManager.getInstance(this).sendBroadcast(i);
如上就是广播机制的一个应用。
更多相关文章
- 关于使用AccountManager的remove删除Android帐号的细节
- 【记录】Android(安卓)广播的发送与接收
- 记android输入框添加删除功能
- Android(安卓)ListView侧滑删除
- android重试执行
- Android4.0有时接收不到开机广播
- android 如何做到完全退出应用程序
- Android模拟机出现Installation failed due to invalid APK file
- Android中Window添加View的底层原理